溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linq實體繼承怎么用

發布時間:2021-11-03 14:03:00 來源:億速云 閱讀:155 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關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識別派生類:

  1. BBSContext ctx = new BBSContext("server=xxx;database=BBS;uid=xxx;pwd=xxx");  

  2. var query = from t in ctx.Topics select t;  

  3. foreach (Topic topic in query)  

  4. {  

  5. if (topic is NewTopic)  

  6. {  

  7. NewTopic newtopic = topic as NewTopic;  

  8. Response.Write("標題:" + newtopic.TopicTitle + " 類型:" + 
    newtopic.TopicType + "<br/>");  

  9. }  

  10. else if (topic is Reply)  

  11. {  

  12. Reply reply = topic as Reply;  

  13. Response.Write("標題:" + reply.TopicTitle + " 類型:" + 
    reply.TopicType + " 隸屬主題:" + reply.ParentTopic + "<br/>");  

  14. }  

然后我們往Topics表中加一些數據,如下圖:

Linq實體繼承怎么用

啟動程序得到如下測試結果:

Linq實體繼承怎么用

再來看看如何進行增刪操作

  1. NewTopic nt = new NewTopic() { TopicTitle = "還是新主題"
    TopicContent = "還是新主題" };  

  2. Reply rpl = new Reply() { TopicTitle = "還是新回復"
    TopicContent = "還是新回復"ParentTopic = 4 };  

  3. ctx.Topics.Add(nt);  

  4. ctx.Topics.Add(rpl);  

  5. ctx.SubmitChanges();  

  6. rpl = ctx.Topics.OfType<Reply>().Single(reply => reply.TopicID == 8);  

  7. ctx.Topics.Remove(rpl);  

  8. ctx.SubmitChanges(); 

關于“Linq實體繼承怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女