データベースと LINQ To SQL ASP.NET Web アプリケーションを設計しています。
通常ページとルートページの 2 種類のページがあるとします。一部のページはルートです。一部のページはありません。
Page データベース テーブルと 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 列を null 許容または false にすることはできますか? これは機能しますか?