博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EntityFramework外健的读写
阅读量:6931 次
发布时间:2019-06-27

本文共 1257 字,大约阅读时间需要 4 分钟。

1.首先创建新闻表与新闻分类表,并建立主外键关系如下:

 

(注意:EF在使用时,表是需要定义主键的)

2.在VS2010的项目中点右建添加实体,选择到指定数据库,在以前的文章中有:

(注意:添加后可以看到NEWS实体中外键属性不存在了,变成了导航属性)

3.添加外键时使用的方法:

 
  1. public bool AddNews(string title, int classid, string content,DateTime date,int hot )  
  2.     {  
  3.         bool mark = false;  
  4.         using (DemosModel.DemosEntities dde = new DemosModel.DemosEntities())  
  5.         {  
  6.             try 
  7.             {  
  8.                 var nc = dde.NewsClass.First(p => p.id == classid);  
  9.                 DemosModel.News dn = new DemosModel.News();  
  10.                 dn.NewsClass = nc;  
  11.                 dn.NewsTitle = title;  
  12.                 dn.NewsContent = content;  
  13.                 dn.NewsDate = date;  
  14.                 dn.NewsHot = hot;  
  15.                 dde.AddToNews(dn);  
  16.                 dde.SaveChanges();  
  17.                 mark = true;  
  18.             }  
  19.             catch (Exception err)  
  20.             {  
  21.                 FileManage.Instance.AddLog(err.Message);  
  22.             }  
  23.           
  24.         }  
  25.         return mark;  
  26.     } 

要进行写入外健的操作,必须得先将外键表中对应的对象得到:

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

然后在为news实体对象的NewsClass导航属性赋值为查询出的外键表对象:

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

最后添加保存就可以了:

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

4.查询News表时,获取外键表的方法:

 
  1. public List<DemosModel.News> NewsList()  
  2.     {  
  3.         List<DemosModel.News> list = new List<DemosModel.News>();  
  4.         using (DemosModel.DemosEntities dde = new DemosModel.DemosEntities())  
  5.         {  
  6.             list = dde.News.Include("NewsClass").ToList<DemosModel.News>();  
  7.         }  
  8.  
  9.         return list;  
  10.     } 

在查询News表时,需要使用Include方法将外键表包括进来,否则查询的结果中则外键表导航属性为null值。

 
  1. dde.News.Include("NewsClass"); 

 

转载地址:http://zygjl.baihongyu.com/

你可能感兴趣的文章
[CareerCup] 6.4 Blue Eyes People on Island 岛上的蓝眼人
查看>>
白话JAVA守护线程
查看>>
APP抓链接工具(Fiddler版)
查看>>
Java对象表示方式2:XStream实现对对象的XML化
查看>>
arm-linux-gcc/ld/objcopy/objdump参数总结【转】
查看>>
asp.net 页面 输出之前修改 html(render)
查看>>
express运行原理
查看>>
一步一步学习SignalR进行实时通信_6_案例
查看>>
JAVA基础学习day21--IO流三-File、Properties、PrintWriter与合并、分割流
查看>>
OAF中下载附件之后页面失效,报过时的数据异常,浏览器后退异常
查看>>
解决 Error:No suitable device found: no device found for connection &quot;System eth0&quot;
查看>>
HttpClient(联网)
查看>>
js url参数的获取和设置以及删除
查看>>
struts2 标签问题----escape="false" 这个属性
查看>>
android79 Fragment生命周期
查看>>
【转】JDBC为什么要使用PreparedStatement而不是Statement
查看>>
设置TextView下划线并响应点击事件(SpannableString)
查看>>
查看ADOP会话
查看>>
IIS 之 添加绑定域名 或 设置输入IP直接访问网站
查看>>
机器学习常见的几个误区--逻辑回归的变量之间如果线性相关
查看>>