0

我有一个界面:

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>按照编译器的说法返回一个类型。我应该怎么办?

4

1 回答 1

0

好吧,我认为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; }
}
于 2014-05-04T05:05:36.187 回答