Можно ли сделать обобщение с помощью DbSet?C#

Место общения программистов C#
Ответить
Гость
 Можно ли сделать обобщение с помощью DbSet?

Сообщение Гость »


У меня есть следующий код, в котором много дублирований, и я хотел бы сделать его универсальным методом:

ожидайте использования (var dbContext = await NoTrackingDbFactory.CreateDbContextAsync()) { переключатель (тип модели) { случай AttributeModel.AttributeType.Certification: вар listCerts = ждут dbContext.Certifications.OrderBy(c => c.Name).ToListAsync(); listModels.AddRange(listCerts.Select(item => new AttributeModel(BlobService, item))); ПсуедоАтрибут = listCerts.First(); перерыв; случай AttributeModel.AttributeType.Interest: ХасЦвет = правда; вар listInterests = ждут dbContext.Interests.OrderBy(c => c.Name).ToListAsync(); listModels.AddRange(listInterests.Select(item => new AttributeModel(BlobService, item))); ПсуедоАтрибут = списокИнтересты.Первый(); перерыв; случай AttributeModel.AttributeType.Skill: вар listSkills = ждут dbContext.Skills.OrderBy(c => c.Name).ToListAsync(); listModels.AddRange(listSkills.Select(item => new AttributeModel(BlobService, item))); ПсуедоАтрибут = listSkills.First(); перерыв; случай AttributeModel.AttributeType.Tag: вар listTags = ждут dbContext.Tags.OrderBy(c => c.Name).ToListAsync(); listModels.AddRange(listTags.Select(item => new AttributeModel(BlobService, item))); ПсуедоАтрибут = listTags.First(); перерыв; } } Что я не могу понять, так это то, как создать обобщение dbContext.Certifications, dbContext.Interests и т. д. Все 4 из этих DbSets являются классами модели, которые наследуются от одного и того же базового класса. Но это разные наборы DbSet.

Можно ли это сделать?
Ответить

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

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

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

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

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