如何使用DbSet使用泛型类型
本文关键字:泛型类型 何使用 DbSet | 更新日期: 2023-09-27 18:01:28
有一个接口:
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; }
}