相关疑难解决方法(0)

如何使用CodeFirst的接口属性

我有以下实体:

public interface IMyEntity
{
    [Key]
    int Id { get; set; }
    IMyDetail MyDetail { get; set; }
    ICollection<IMyDetail> CollectionOfReferences { get; set; }
}

public interface IMyDetail
{
    [Key]
    int Id { get; set; }
    int IntValue { get; set; }
}

public class MyEntity : IMyEntity
{
    [Key]
    public virtual int Id { get; set; }
    public virtual IMyDetail MyDetail { get; set; }
    public virtual ICollection<IMyDetail> CollectionOfReferences { get; set; }
}

public class MyDetail : IMyDetail …
Run Code Online (Sandbox Code Playgroud)

entity-framework

30
推荐指数
5
解决办法
3万
查看次数

我可以从我的实体中抽象实体框架吗?

Foo在实体框架中有一个实体.但我正在使它继承,IFoo以便我的业务逻辑只知道IFoo- 从而抽象出实体框架.

问题是Foo有一组Bar实体.而这个系列是类型的EntityCollection<Bar>.

如果我按IFoo原样放入此集合,我IFoo依赖于Entity Framework.所以我想把它作为ICollection<IBar>,但这不编译(自然).

我能想到的唯一的解决办法就是去具体的Foo实体框架设计器生成的执行情况和更改收集EntityCollection<Bar>ICollection<IBar>那里.但我担心这会对"幕后"的实体框架产生影响.

有没有什么办法让我可以定义IFooIBar独立于实体框架,同时仍然维护FooBar实现它们的EF实体?做IFooIBar甚至是有意义的,如果我不能做到这一点的独立性,我什么为目标?

entity-framework interface

9
推荐指数
1
解决办法
4475
查看次数

实体框架6:使用界面作为导航属性可能吗?

有没有办法在EF6中使用接口作为导航属性?我找到了EF4或更早版本的相关主题,似乎不太可能; 一般来说,从那时起,继承似乎已经有了很大的改进,但我还没有找到办法使这个特定问题发挥作用.

例:

public interface IPerson
{
  string name { get; set; }
}

public class Man : IPerson { /* ... */ }
public class Woman : IPerson { /* ... */ }

public interface ICar
{
  IPerson driver { get; set; }
}

public class Car : ICar
{
  public virtual IPerson driver { get; set; }  // This won't map
}
Run Code Online (Sandbox Code Playgroud)

这有可能吗?如果没有,那么做什么是明智的方法呢?

因为目前我没有看到任何方式让接口有一个可设置的属性,其类型是其他接口(例如ICar的IPerson属性),哪种打击我作为一个非常严重的设计限制?!

c# entity-framework

7
推荐指数
1
解决办法
4834
查看次数

使用 DbSet 接口,EF Core 可能吗?

回到 EF 4,这是不可能的。是否可以DbSet在 EF6 或 EF Core 中使用接口?

public class LfSp3Ctx : DbContext, ILfSp3Ctx
{
    public DbSet<ILfSp3Project> ProjectSE { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

c# entity-framework-6 ef-core-2.0

6
推荐指数
1
解决办法
5628
查看次数