本文共 1257 字,大约阅读时间需要 4 分钟。
1.首先创建新闻表与新闻分类表,并建立主外键关系如下:
(注意:EF在使用时,表是需要定义主键的)
2.在VS2010的项目中点右建添加实体,选择到指定数据库,在以前的文章中有:
(注意:添加后可以看到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");
转载地址:http://zsppx.baihongyu.com/