2009-12-19 87 views
1

我有POCO類和我的數據庫之間的Linq-To-Sql映射。我希望能夠在我的類上添加屬性,這些屬性表示比簡單的scalr值稍微複雜的構造。如何壓扁Linq-To-Sql表映射?

例如,我有一個自定義的結構類型,它包含兩個簡單的標量值。我不想讓這個表格再添加一個FK作爲屬性。是否可以使用Linq-to-Sql XML映射文件映射此結構的屬性?

例如,

public class Foo 
{ 
    public string Blah { get; set; } 
    public Bar Yada { get; set; } 
} 

public struct Bar 
{ 
    public int A { get; set; } 
    public int B { get; set; } 
} 

我怎麼會指定BlahYada.AYada.B都堅持爲在Foo表列?

這可以完成嗎?

回答

1

這真的很蹩腳,但聽起來像它可能需要我必須做的,如果我堅持L2S。

public class Foo 
{ 
    public string Blah { get; set; } 

    public int Bar_A { get; set; } 
    public int Bar_B { get; set; } 

    /* not mapped to DB */ 
    public Bar Yada 
    { 
     get { return new Bar { A = this.Bar_A, B = this.Bar_B }; } 
     set { this.Bar_A = value.A; this.Bar_B = value.B; } 
    } 
} 

public struct Bar 
{ 
    public int A { get; set; } 
    public int B { get; set; } 
} 

當然,在真正的代碼,我可能會讓它這樣,它不是遍地創造價值,因爲我真正的Bar型比單純地包含這一數值更給它。

1

我覺得.NET4中的實體框架是完成這個任務所必需的。有關複雜類型和實體,請參閱this blog post

+0

感謝您的提示。我真的希望堅持使用LINQ到SQL這個小應用程序。如果我跳到EF,我真的不得不退後看NHibernate和其他人。 – mckamey 2009-12-20 20:03:33