這篇文章將為大家詳細講解有關Linq實體繼承怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
Linq實體繼承使用
定義好實體繼承之后,我們就可以Linq實體繼承使用了。先是自定義一個DataContext吧:
public partial class BBSContext : DataContext { public Table<BoardCategory> BoardCategories; public Table<Board> Boards; public Table<Topic> Topics; public BBSContext(string connection) : base(connection) { } }
然后,我們來測試一下Linq to sql是否能根據TopicType識別派生類:
BBSContext ctx = new BBSContext("server=xxx;database=BBS;uid=xxx;pwd=xxx");
var query = from t in ctx.Topics select t;
foreach (Topic topic in query)
{
if (topic is NewTopic)
{
NewTopic newtopic = topic as NewTopic;
Response.Write("標題:" + newtopic.TopicTitle + " 類型:" +
newtopic.TopicType + "<br/>");}
else if (topic is Reply)
{
Reply reply = topic as Reply;
Response.Write("標題:" + reply.TopicTitle + " 類型:" +
reply.TopicType + " 隸屬主題:" + reply.ParentTopic + "<br/>");}
}
然后我們往Topics表中加一些數據,如下圖:
啟動程序得到如下測試結果:
再來看看如何進行增刪操作
NewTopic nt = new NewTopic() { TopicTitle = "還是新主題",
TopicContent = "還是新主題" };Reply rpl = new Reply() { TopicTitle = "還是新回復",
TopicContent = "還是新回復", ParentTopic = 4 };ctx.Topics.Add(nt);
ctx.Topics.Add(rpl);
ctx.SubmitChanges();
rpl = ctx.Topics.OfType<Reply>().Single(reply => reply.TopicID == 8);
ctx.Topics.Remove(rpl);
ctx.SubmitChanges();
關于“Linq實體繼承怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。