Как получить доступ к свойствам DBSET во время выполненияC#

Место общения программистов C#
Ответить
Anonymous
 Как получить доступ к свойствам DBSET во время выполнения

Сообщение Anonymous »

Я очень новичок в разработке с ORM. Dbcontext класс и выглядит примерно так:

Код: Выделить всё

public void Add( DummyObject objectToAdd)
{
using (MyContext context = new MyContext())
{
/* check if entity with such primary key already exists in database */
/* Here, DummyObjects is a name of DbSet property from DbContext */
Context.DummyObjects.Add(objectToAdd);
}
}
То, с чем я застрял, это когда я пытаюсь написать логику для типа, который не известен во время компиляции, я не могу получить доступ к свойствам dbset по имени. Я знаю, в классе DBContext есть метод SET , но он использует генерики, и поэтому я не могу использовать его, поскольку дженерики должны быть указаны во время компиляции и не примут что -то подобное
В этот момент, я считаю, что эти варианты остаются:

. /> [*] Использовать отражение, которое принесло бы ненужные штрафы на производительность и, я полагаю, не предназначено для таких случаев.

[*] написать класс с использованием генерирования и использовать словарь с типом Mappings to Dbinterctionclass , который означает, что значит, что значит, что значит, что значит, что значит, что значит, что значит, что значит, что значит, что значит, что значит. />

В этом ресурсе был вопрос о том, как получить доступ к dbset , когда он известен только во время выполнения, который будет использоваться dbset , и ответ был для использования версии Set () , который не использовал общие и которые недоступны в современных версиях EF.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... at-runtime
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»