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");
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索entityframework
, 对象
, 查询
, 主外键
, 属性
, 外键查询
, 添加外键
, 实体
缺失主键表
entity framework、entity framework 6、entityframework 教程、c entity framework、entity framework pdf,以便于您获取更多的相关知识。