程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 如何讀寫EntityFramework外健

如何讀寫EntityFramework外健

編輯:關於.NET

1.首先創建新聞表與新聞分類表,並建立主外鍵關系如下:

(注意:EF在使用時,表是需要定義主鍵的)

2.在VS2010的項目中點右建添加實體,選擇到指定數據庫,在以前的文章中有:http://jianle.blog.51cto.com/429692/723758

(注意:添加後可以看到NEWS實體中外鍵屬性不存在了,變成了導航屬性)

3.添加外鍵時使用的方法:

public bool AddNews(string title, int classid, string content,DateTime date,int hot )  
    {  
        bool mark = false;  
        using (DemosModel.DemosEntities dde = new DemosModel.DemosEntities())  
        {  
            try
            {  
                var nc = dde.NewsClass.First(p => p.id == classid);  
                DemosModel.News dn = new DemosModel.News();  
                dn.NewsClass = nc;  
                dn.NewsTitle = title;  
                dn.NewsContent = content;  
                dn.NewsDate = date;  
                dn.NewsHot = hot;  
                dde.AddToNews(dn);  
                dde.SaveChanges();  
                mark = true;  
            }  
            catch (Exception err)  
            {  
                FileManage.Instance.AddLog(err.Message);  
            }  
              
        }  
        return mark;  
    }

要進行寫入外健的操作,必須得先將外鍵表中對應的對象得到:

var nc = dde.NewsClass.First(p => p.id == classid);

然後在為news實體對象的NewsClass導航屬性賦值為查詢出的外鍵表對象:

DemosModel.News dn = new DemosModel.News();  
dn.NewsClass = nc;

最後添加保存就可以了:

dde.AddToNews(dn);  
dde.SaveChanges();

4.查詢News表時,獲取外鍵表的方法:

public List<DemosModel.News> NewsList()  
    {  
        List<DemosModel.News> list = new List<DemosModel.News>();  
        using (DemosModel.DemosEntities dde = new DemosModel.DemosEntities())  
        {  
            list = dde.News.Include("NewsClass").ToList<DemosModel.News>();  
        }  
     
        return list;  
    }

在查詢News表時,需要使用Include方法將外鍵表包括進來,否則查詢的結果中則外鍵表導航屬性為null值。

dde.News.Include("NewsClass");

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved