2010-12-16 2 views
0

Это более общий вопрос, и я не на 100% на то, что я на самом деле спрашиваю, поэтому извиняюсь заранее, если это окажется на груз вафли!Linq To Sql Domain Model

Я создаю сайт в ASP.NET MVC2, и я ищу настройку своей модели домена. Я читаю книги, которые появляются, чтобы настроить отношения между таблицами в C#, в отличие от базы данных (или, может быть, я читаю ее неправильно?).

Если да, то это правильный способ сделать это?

Например, если взять классы модели домена 2 ниже:

[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 Server? Является ли идея определять отношения между объектами в C#, а не самой базой данных?

Немного смущен, и, как я уже сказал, я мог бы быть совершенно вне курса здесь.

+0

Если ваше «создание веб-сайта» (т.е. с нуля) - зачем начинать с устаревшей технологии? Я настоятельно рекомендую использовать Entity Framework. Тем более в вашем представлении - потому что вы могли бы использовать сначала код или сначала модель, и генерировать БД (сначала не нужно делать БД). – RPM1984 2010-12-16 22:13:27

+0

Linq to Sql и Domain Model - это два слова, которые нельзя использовать вместе. Linq to Sql использует модели персистентности и не может действительно отображать множество дополнительных сценариев, которые вам нужны для DDD. – jfar 2010-12-17 04:03:27

ответ

3

Нет, вы все равно должны создавать отношения в базе данных. То, что вы видите в коде C#, - это просто то, как LinqToSql знает, какие таблицы и столбцы составляют отношения. Но вы все равно должны создавать отношения в своей базе данных, чтобы обеспечить целостность данных.