2010-12-16 4 views
0

이것은보다 일반적인 질문이며, 실제로 이것이 내가 와플로드로 밝혀지면 실제로 사과 할 것을 100 % 요구하지 않습니다!Linq to SQL 도메인 모델

ASP.NET MVC2에서 웹 사이트를 만들고 있는데 내 도메인 모델을 설정하고 있습니다. 나는 인 C#의 테이블 사이의 관계를 설정하는 것으로 보이는 책을 읽고 있는데, 데이터베이스와 반대되는 것입니다 (아니면 내가 잘못 읽은 것입니까?).

그렇다면 올바른 방법입니까?

[Table(Name="Users")] 
public class User 
{ 
    [Column(IsPrimaryKey=true, IsDbGenerated=true, AutoSync=AutoSync.OnInsert)] 
    public int ID{get;set;} 
    public string Name{get;set;} 
} 

[Table(Name="Posts")] 
public class Post 
{ 
    [Column(IsPrimaryKey=true, IsDbGenerated=true, AutoSync=AutoSync.OnInsert)] 
    internal int ID{get;set;} 
    internal int MemberID {get;set;} 
    public string Body {get;set;} 

    internal EntityRef<User> _user; 
    [Association(ThisKey="MemberID", storage="_user")] 
    public User User 
    { 
     get{ return _user.Entity; } 
     internal set{ _member.Entity = value; ID = value.ID; } 
    } 
} 

EntityRef 이것은 MSSQL 서버의 관계를 생성하기위한 여분이다

예를 들어, 아래의 2 개의 도메인 모델 수업을? C#에서 엔터티 간의 관계를 정의하는 아이디어는 데이터베이스 자체가 아닌 것입니까?

조금 혼란 스러웠고 내가 말했듯이 나는 여기서 벗어날 수 있었다.

+0

"웹 사이트 만들기"(즉, 처음부터) - 왜 오래된 기술로 시작합니까? Entity Framework를 사용하는 것이 좋습니다. 당신의 코드에서 첫 번째 또는 첫 번째 모델을 사용하고 DB를 생성 할 수 있기 때문에 (DB를 먼저 수행 할 필요가 없습니다.) – RPM1984

+0

Linq to SQL과 Domain Model은 함께 사용해서는 안되는 두 단어입니다. Linq to SQL은 지속성 모델 만 수행하며 DDD에 필요한 많은 고급 시나리오를 실제로 매핑 할 수 없습니다. – jfar

답변

3

아니요, 여전히 데이터베이스에 관계를 만들어야합니다. C# 코드에서 LinqToSql이 테이블과 컬럼이 관계를 어떻게 구성하는지 알 수 있습니다. 그러나 데이터 무결성을 유지할 수 있도록 데이터베이스에 관계를 만들어야합니다.

+0

+1 그는이 두 테이블을 dbml로 끌어다 놓은 것 같아요. 데이터베이스에 정의 된 관계에 따라이 두 테이블을 만들었습니다. – hunter

+0

아니요, 끌어서 놓지 않았습니다. 위 코드를 작성했습니다. 나 자신 (그것이 작동하는 방법에 호기심에서). – AndrewC

+0

그리고 일대 다 관계 중 어떤 것을 코드에 구현합니까? – AndrewC