繁体   English   中英

如何使用DbSet <T> 具有通用类型

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM