私はデータベースとLINQ To SQL ASP.NET Webアプリケーションを設計しています。LINQ to SQL IsDiscriminator列は継承できませんか?
普通とルートの2種類のページがあるとします。一部のページはルーツです。一部のページは表示されません。
私はページのデータベーステーブルと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 SQL IsDiscriminatorの列がNULL可能か偽ことはできますか?これは使えますか?
ありがとうございました。詳細はこちら: http://blogs.microsoft.co.il/blogs/bursteg/archive/2007/10/01/linq-to-sql-inheritance.aspx –