如何读写EntityFramework外健

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,以便于您获取更多的相关知识。

时间: 2024-11-02 13:48:57

如何读写EntityFramework外健的相关文章

软文不是“小广告” 外链并非最终归宿

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 软文可以做什么?在站长圈普遍的认为便是增加网站外链.然而增加网站外链便是其最终归宿吗?如果每一天的创作为的仅仅是给搜索引擎打一次"小广告",便失去了软文本身应该存在的价值.而软文效果最大化,外链并非其最终归宿.一篇优秀的软文资源,赢得的也不仅仅是单向外链,更应是人心所向,塑造品牌价值. 一:软文创作更易赢得品牌价值 品牌建

MYSQL建立外键失败几种情况记录Can&#039;t create table不能创建表_Mysql

像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上,这个mysql报错已经被报告是一个mysql本身的bug并出现在mysql 开发者列表当中很多年了,然而这似乎又是一种误导. 在很多实例中,这种错误的发生都是因为mysql一直以来都不能很好的支持的关系的问题, 更不幸的是它也并没有指明到底是哪一个问题会导致上面那种错误,下面我把导致这个可怕 的150错误的常见原因列出来了,并且我以可能性的大小作了排序,已知的原因: 1. 两个字

解析MySQL创建外键关联错误 - errno:150_Mysql

当你试图在mysql中创建一个外键的时候,这个出错会经常发生,这是非常令人沮丧的.像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上,这个mysql报错已经被报告是一个mysql本身的bug并出现在mysql 开发者列表当中很多年了,然而这似乎又是一种误导. 在很多实例中,这种错误的发生都是因为mysql一直以来都不能很好的支持的关系的问题, 更不幸的是它也并没有指明到底是哪一个问题会导致上面那种错误,下面我把导致这个可怕 的15

MYSQL建立外键失败 Cant create table 几种情况记录

这种错误的发生都是因为mysql教程一直以来都不能很好的支持的关系的问题, 更不幸的是它也并没有指明到底是哪一个问题会导致上面那种错误,下面我把导致这个可怕 的150错误的常见原因列出来了,并且我以可能性的大小作了排序,已知的原因: 1. 两个字段的类型或者大小不严格匹配,例如,如果一个是INT(10), 那么外键也必须设置成INT(10), 而不是 INT(11) 也不能是 TINYINT. 你得使用 SHOW 命令来查看字段的大小,因为一些查询浏览器有时候把 int(10) 和int(11)

mysql处理添加外键时提示error 150 问题的解决方法_Mysql

像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上,这个mysql报错已经被报告是一个mysql本身的bug并出现在mysql 开发者列表当中很多年了,然而这似乎又是一种误导. 在很多实例中,这种错误的发生都是因为mysql一直以来都不能很好的支持的关系的问题, 更不幸的是它也并没有指明到底是哪一个问题会导致上面那种错误,下面我把导致这个可怕 的150错误的常见原因列出来了,并且我以可能性的大小作了排序 已知的原因: 1, 两个字

sql server ql语句删除外键和删除

sql server ql语句删除外键和删除 alter   table   tablename   add   constraint   ordersrelationship                           foreign   key   mployeeid       references   employees   (employeeid)                           on   delete     cascade                

MS SQL Server查询优化方法

server|优化 ●查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源.9.返回了不必要的行和列 10.查询语句不好,没有优化 ●可以通过

MS SQL Server查询优化方法(1)●查询速度慢的原因很多,常见如下几种:

server|速度|优化 MS SQL Server查询优化方法(1) ●查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源.9.返回了不必

SQL Server数据库优化方案

server|数据|数据库|优化 查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源. 9.返回了不必要的行和列 10.查询语句不好,没有