2

当我将实体框架升级到 5.0 时,我遇到了一个问题,以说明:

public class MyClass
{
   public Foo foo;

   public ICollection<Student> Students{ get; set; }

}

public class Student
{
   public int Id {get; set;}
   public string s {get; set;}
}

public class Foo
{
  public int data {get; set}
  ...
}

EF 正确创建了一个名为 Student 的表,因为我已经定义了从 MyClass 到 Student 的一对多关系。我使用类 Foo 作为封装并且具有一对一的关系。

EF 4.0 没有为 . 创建单独的表Foo,而是使用Foo_dataMyClass 表中的属性数据。使用 EF 5.0,我得到了另一个表Foo

我怎样才能告诉 EF 不要为其创建表Foo

4

2 回答 2

1

我不是 100% 确定这为什么/如何从 EF4 发生变化,但你想要的是Foo一个Complex Type。这应该源于Foo没有Id财产的事实。
尝试执行它:

[ComplexType]
public class Foo
{
  public int data {get; set}
  ...
}
于 2012-10-28T13:01:46.030 回答
0

尝试在 EF5 中迁移时,我也遇到了这个问题。我发现 EntityFramework 已经自动DbSet向我的DbContext. 它隐藏在班级的底部。

我认为这与在生成视图并提供 DbContext 时选择它作为 ViewModel 有关。不要提供 dbContext。

于 2014-07-22T16:47:01.037 回答