[英]How to use a DbSet<T> with a generic type
我有一个界面:
public interface ILanguageEntity
{
int Id { get; set; }
string Name { get; set; }
string Code { get; set; }
string Culture { get; set; }
string LocalName { get; set; }
bool IsRightToLeft { get; set; }
}
我已经将其实现为这样的实体:
public class LanguageEntity : ILanguageEntity
{
public int Id { get; set; }
public string Name { get; set; }
public string Code { get; set; }
public string Culture { get; set; }
public string LocalName { get; set; }
public bool IsRightToLeft { get; set; }
}
在我的服务中,我想为该实体提供一个属性,该属性返回其DbSet,如下所示:
public class LanguageService : ILanguageService
{
public ApplicationContext Context { get; set; }
public DbSet<ILanguageEntity> DbSet { get { return Context.Set<LanguageEntity>(); } }
}
但这是不可能的,因为我要返回DbSet<LanguageEntity>
类型,而我必须按照编译器所说返回DbSet<ILanguageEntity>
类型。 我该怎么办?
好吧,我认为ApplicationContext
应该至少有一个ILanguageEntity
DbSet
这是我想出的:
public class LanguageService : ILanguageService
{
public ApplicationContext Context { get; set; }
public DbSet<ILanguageEntity> DbSet
{
get
{
return Context.LanguageEntities;
}
set
{
throw new NotImplementedException();
}
}
}
public class ApplicationContext : DbContext
{
public DbSet<ILanguageEntity> LanguageEntities { get; set; }
}
public interface ILanguageService
{
DbSet<ILanguageEntity> DbSet { get; set; }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.