c# entity framework - Страница 9 - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > Полезное / Common > Программирование / Programming

Программирование / Programming
Ищете помощи в написании программы, есть сложность в выполнении задания (в институте и т.д.), пожалуйста, спросите у нас в данном форуме и мы обязательно вам поможем.

Ответ
Опции темы
Непрочитано 28.01.2018, 22:06   #81
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: c# entity framework

using (var context = new YourDbContext())
{
	var server = context.Servers.Find(1); // или FindOrDefault с последующей проверкой на null
 
	Response(new YourPacket(server));
}
 
Code: C#
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 29.01.2018, 09:55   #82
Пользователь

По умолчанию Re: c# entity framework

Код:
MyDbContext Db = new MyDbContext();
var server = Db.Set<Server>.Where(x => predicate).Select(x => ....)

или

var server = Db.Set<Server>.FirstOrDefault( x => predicate)
Jopozet вне форума Ответить с цитированием
Непрочитано 08.02.2018, 14:04   #83
Забанен за кидаловo/обман/развод

Автор темы (Топик Стартер) Re: c# entity framework

При попытке брать ид предметов из инвентаря выдает ошибку
ну точнее в инвентарь вызывается предмет из таблицы предметов
Код:
[Error] Unknown column 'c.characterBELTid' in 'field list'
   at MySql.Data.MySqlClient.MySqlDataReader.ActivateResultSet(ResultSet resultSet) in C:\projects\mysqlconnector\src\MySqlConnector\MySql.Data.MySqlClient\MySqlDataReader.cs:line 92
   at MySql.Data.MySqlClient.MySqlDataReader.<ReadFirstResultSetAsync>d__65.MoveNext() in C:\projects\mysqlconnector\src\MySqlConnector\MySql.Data.MySqlClient\MySqlDataReader.cs:line 297
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at MySql.Data.MySqlClient.MySqlDataReader.<CreateAsync>d__64.MoveNext() in C:\projects\mysqlconnector\src\MySqlConnector\MySql.Data.MySqlClient\MySqlDataReader.cs:line 287
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at MySqlConnector.Core.TextCommandExecutor.<ExecuteReaderAsync>d__3.MoveNext() in C:\projects\mysqlconnector\src\MySqlConnector\Core\TextCommandExecutor.cs:line 70
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at MySql.Data.MySqlClient.MySqlCommand.ExecuteDbDataReader(CommandBehavior behavior) in C:\projects\mysqlconnector\src\MySqlConnector\MySql.Data.MySqlClient\MySqlCommand.cs:line 172
   at Microsoft.EntityFrameworkCore.Storage.Internal.MySqlRelationalCommand.<ExecuteAsync>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.EntityFrameworkCore.Storage.Internal.MySqlRelationalCommand.Execute(IRelationalConnection connection, DbCommandMethod executeMethod, IReadOnlyDictionary`2 parameterValues)
   at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.ExecuteReader(IRelationalConnection connection, IReadOnlyDictionary`2 parameterValues)
   at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.Enumerator.BufferlessMoveNext(Boolean buffer)
   at Microsoft.EntityFrameworkCore.Storage.Internal.MySqlExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded)
   at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.Enumerator.MoveNext()
   at System.Linq.Enumerable.TryGetFirst[TSource](IEnumerable`1 source, Boolean& found)
   at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)
   at lambda_method(Closure , QueryContext )
   at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.<>c__DisplayClass17_1`1.<CompileQueryCore>b__0(QueryContext qc)
   at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.Execute[TResult](Expression query)
   at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryProvider.Execute[TResult](Expression expression)
   at System.Linq.Queryable.First[TSource](IQueryable`1 source, Expression`1 predicate)
   at Project_Sky.PBCoreRE.Database.CharacterDB.loadCharacter(Int32 player_id) in E:\Project\Project_Sky\Project_Sky\Project_Sky.PBCoreRE\Database\CharacterDB.cs:line 13
   at Project_Sky.PBLogin.Emu.Network.Recv.PROTOCOL_LOGIN_REQ.RunImpl() in E:\Project\Project_Sky\Project_Sky\Project_Sky.PBLogin\Emu\Network\Recv\PROTOCOL_LOGIN_REQ.cs:line 38
   at Project_Sky.PBCoreRE.Packet.ClientPacket.Init(Byte[] buffer) in E:\Project\Project_Sky\Project_Sky\Project_Sky.PBCoreRE\Packet\ClientPacket.cs:line 29
   at Project_Sky.PBLogin.Emu.Network.ClientConnection.BeginRead(IAsyncResult asyncResult) in E:\Project\Project_Sky\Project_Sky\Project_Sky.PBLogin\Emu\Network\ClientConnection.cs:line 71
 
public partial class CharacterModel
    {
        public int id { get; set; }
        public int player_id { get; set; }
        public string characterName { get; set; }
        public int characterSlot { get; set; }
        public int selectedCharacter { get; set; }
        public int creationDate { get; set; }
        public int playTime { get; set; }
        public InventoryModel characterPRIMARY { get; set; }
        public InventoryModel characterSECONDARY { get; set; }
        public InventoryModel characterMELEE { get; set; }
        public InventoryModel characterTHROWING { get; set; }
        public InventoryModel characterSPECIAL { get; set; }
        public InventoryModel characterID { get; set; }
        public InventoryModel characterHEAD { get; set; }
        public InventoryModel characterFACE { get; set; }
        public InventoryModel characterJACKET { get; set; }
        public InventoryModel characterPOKET { get; set; }
        public InventoryModel characterGLOVE { get; set; }
        public InventoryModel characterBELT { get; set; }
        public InventoryModel characterHOLSTER { get; set; }
        public InventoryModel characterSKIN { get; set; }
        public InventoryModel characterBERET { get; set; }
        public int skill { get; set; }
        public int skill_level_1 { get; set; }
        public int skill_level_2 { get; set; }
        public int skill_level_3 { get; set; }
        public int skill_slot_1 { get; set; }
        public int skill_slot_2 { get; set; }
        public int skill_slot_3 { get; set; }
        public PlayerModel Player { get; set; }
    }
 
Code: C#
Boris2105 вне форума Ответить с цитированием
Непрочитано 08.02.2018, 14:27   #84
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: c# entity framework

Пытается получить InventoryModel. Соответственно ищет ключ для связи.

Да и реализация сущности мягко говоря не очень.
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 08.02.2018, 14:32   #85
Забанен за кидаловo/обман/развод

Автор темы (Топик Стартер) Re: c# entity framework

Цитата:
Сообщение от PROGRAMMATOR Посмотреть сообщение
Пытается получить InventoryModel. Соответственно ищет ключ для связи.

Да и реализация сущности мягко говоря не очень.
и как ему получить?
почему не очень?

Последний раз редактировалось Boris2105; 08.02.2018 в 21:51.
Boris2105 вне форума Ответить с цитированием
Непрочитано 09.02.2018, 01:05   #86
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: c# entity framework

Предметы - собственность аккаунта, один и тот же предмет может быть экипирован у нескольких персонажей. Так что Many-to-Many как раз то, что нужно. Связываешь персонажей и предметы через таблицу character_item, в случае с EF Core 2.0 придётся создать связующую сущность:

class CharacterItem
{
    public int CharacterId { get; set; }
    public Character Character { get; set; }
 
    public int ItemObjId { get; set; }
    public Item Item { get; set; }
}
 
Code: C#

class Character
{
    public ICollection<CharacterItem> CharacterItems { get; set; } 
        = new HashSet<CharacterItem>();
}
 
Code: C#

И это, ты пишешь на C#, а выглядит это всё не как C#.

Если для тебя принципиально важно, чтобы колонки таблиц были в snake_case, то незачем в самих сущностях применять такое написание. Проще в контексте задать необходимый стиль.

protected override void OnModelCreating(ModelBuilder builder)
{
    builder.Model.GetEntityTypes()
        .SelectMany(entity => entity.GetProperties())
        .ToList()
        .ForEach(prop => prop.Relational().ColumnName = prop.Name.ToSnakeCase());
}
 
Code: C#

public static string ToSnakeCase(this string value)
{
    return Regex.Replace(value,
            "(.)(?=[A-Z])",
            "$1_",
            RegexOptions.Compiled
        ).ToLower();
}
 
Code: C#
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Piercing Blow] Entity Framework Boris2105 Point Blank (Piercing Blow) 3 23.01.2017 17:32
[Продам] Дизайн AION: The Tower Of Entity ExcellentArt Рынок / Marketplace 16 26.04.2010 23:05
Я не установил NET Framework 3.5, и теперь ошибка! SonikX World of WarCraft 8 20.08.2009 18:06


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 17:13. Часовой пояс GMT +3.

Вверх