2012-10-27 4 views
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 제대로 학생들라는 테이블을 생성 내가 한 정의 때문에 MyClass에서 Student까지 많은 관계. Foo 클래스를 캡슐화로 사용하고 일대일 관계가 있습니다.

EF 4.0은 Foo에 대해 별도의 테이블을 만들지 않았으며 대신 MyClass 테이블에서 Foo_data이라는 속성 데이터를 사용했습니다. EF 5.0에서는 Foo에 대한 또 다른 표가 나타납니다.

Foo에 대한 표를 만들지 않도록 EF에게 어떻게 알릴 수 있습니까?

답변

1

나는 이것이 EF4에서 왜/어떻게 바뀌 었는지 확실하지 않지만, 원하는 것은 FooComplex Type이되도록합니다. 이는 FooId 속성이 없다는 사실에서 파생되었을 것입니다.
봅니다 그것을 집행 : EF5에 마이그레이션하려고 할 때 나는이 문제가 있었

[ComplexType] 
public class Foo 
{ 
    public int data {get; set} 
    ... 
} 
+0

헨크, 위대한, 나는 그것을 시도 할 것입니다, 해결책은 의미가 있습니다. – user1780105

+0

매력처럼 일했습니다. 감사합니다 :) – user1780105

0

. EntityFramework가 DbContextDbSet 속성을 자동으로 추가 한 것을 발견했습니다. 그것은 학급의 바닥에 바로 숨겨졌습니다.

저는 이것이보기를 생성하고 DbContext를 제공 할 때 ViewModel로 선택하는 것과 관련이 있다고 생각합니다. dbContext를 제공하지 마십시오.