我正在設計我的數據庫和LINQ To SQL ASP.NET Web應用程序。LINQ to SQL IsDiscriminator列是否可以繼承?
想象一下,我有兩種類型的頁面:普通和根。有些頁面是根源。有些頁面不是。
我有一個網頁,數據庫表和RootPage數據庫表:
Page
----
PK PageId
HtmlTitle
PageHeading
MetaDescription
IsRoot
RootPage
--------
FK PK PageId
FavIcon
StyleSheet
MasterPage
我想,如果我的DBML文件中我設置了IsRoot列IsDiscriminator屬性,那麼我RootPage類將繼承Page類。
我希望能夠在我的代碼是這樣工作的:
MyDataContext db = new MyDataContext();
var roots = from p in db.Pages
where p is RootPage
select (RootPage)p;
或者這樣:
RootPage r = new RootPage();
r.HtmlTitle = "Foo";
r.FavIcon = "bar.ico";
...
db.Pages.Add(r);
db.SubmitChanges();
一個LINQ to SQL的IsDiscriminator列可以可空還是假的?這會工作嗎?
謝謝。更多的信息在這裏: http://blogs.microsoft.co.il/blogs/bursteg/archive/2007/10/01/linq-to-sql-inheritance.aspx – 2008-09-16 14:35:10