Можно ли сделать обобщение с помощью DbSet? ⇐ 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.
Можно ли это сделать?
У меня есть следующий код, в котором много дублирований, и я хотел бы сделать его универсальным методом:
ожидайте использования (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.
Можно ли это сделать?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
IEnumerable.Select() внутри DbSet<>.Include() вместо DbSet<>.IncludeThen() в EF Core 8
Anonymous » » в форуме C# - 0 Ответы
- 49 Просмотры
-
Последнее сообщение Anonymous
-