首页 新闻 会员 周边

您好,想请教个问题,关于entity framework

0
悬赏园豆:20 [待解决问题]

看了您这篇文章

http://www.cnblogs.com/dudu/archive/2011/03/31/entity_framework_select_new.html#commentform

有些问题想请教,这篇文章最后说:【于是,我们新建了一个与BlogEntry具有同样属性的BlogEntryClone,

让人惊喜的是:运行成功,未出现异常。猜测被证实,果然与BlogDbContext中注册了BlogEntry有关。

惊喜之后是困惑,什么要有这个限制?而且,BlogEntryClone与BlogEntry不能有任何联系,继承或聚合都不行。】

     那也就是说,这种情况,也就相当于返回了一个匿名类咯?只不过这不是匿名类是我先定义好的类。那我最终想要的结果是像Hibernate里面那样,直接返回查询的这个对象,只是查询部分属性,提高效率。按此文章方法,返回的就是另一个Entity了。要么我就用这个Entity,要么在进行一次Entity转化。额。这个。。 难道就不能想Hibernate里面那样返回原对象,只查部分属性吗。不用原始sql的情况下。。

BKY丶AIR的主页 BKY丶AIR | 初学一级 | 园豆:182
提问于:2013-09-04 15:13
< >
分享
所有回答(3)
0

我目前想到的方法是在定义映射关系时,将不需要查询的属性忽略掉

dudu | 园豆:30994 (高人七级) | 2013-09-04 15:21

额,但是我其它地方要用啊,比如插入。这怎么破。。

支持(0) 反对(0) BKY丶AIR | 园豆:182 (初学一级) | 2013-09-04 15:23

查是只查部分,如果去掉的话,插入的时候不是 要插全部吗。。呜呜

支持(0) 反对(0) BKY丶AIR | 园豆:182 (初学一级) | 2013-09-04 15:24

@BKY丶AIR: 不知最新版EF能不能破,有空研究一下

支持(0) 反对(0) dudu | 园豆:30994 (高人七级) | 2013-09-04 15:26
0

select new 原对象名 { Title = e.Title, Body = t.Text, aaa属性 = null, bbb属性 = null .... }),这样可以么?

clcvc | 园豆:62 (初学一级) | 2013-09-04 15:29

不可以哦。亲。。这就是问题所在 只能用匿名类。蛋疼啊

支持(0) 反对(0) BKY丶AIR | 园豆:182 (初学一级) | 2013-09-04 17:16
0

我想问个问题,如果 Hibernate 只返回一个对象的部分属性的话,那么该对象还有状态跟踪吗?既我写下如下的代码:

using(DbContext ctx = new DbContext())

{

    var entity  = ctx.DbSet<T>.First("Field1,Field2");

    entity.Field10 = "sdfdf";

    ctx.SaveChanges();

}

Launcher | 园豆:45045 (高人七级) | 2013-09-04 15:32

我觉得会出现异常,框架根本无法更新数据啊。。

支持(0) 反对(0) clcvc | 园豆:62 (初学一级) | 2013-09-04 15:37

@clcvc: 你写段代码测试下嘛!

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2013-09-04 15:46

@Launcher: 试了一下,无法对匿名类型属性赋值,是只读的,第二句话编译不能通过呀。

支持(0) 反对(0) clcvc | 园豆:62 (初学一级) | 2013-09-04 15:55

@clcvc: 你是用 Hibernate 做的吗?我看他们说 Hibernate  可以反回对象的部分属性,所以我想知道在Hibernate中,返回部分属性的对象修改后,能否更新回DB中去。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2013-09-04 16:09

@Launcher: 哦。。刚才用ef试的。这个Hibernate还真没试过啊。

支持(0) 反对(0) clcvc | 园豆:62 (初学一级) | 2013-09-04 16:23

@clcvc: 我也没试过,所以我才想问问用 Hibernate 的人,因为我才能预测 EF 以后的版本会不会加入返回对象部分属性的功能。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2013-09-04 16:25

可以的,有一些要求。比如必填项,必须在包含在所查字段里,,然后用Hibernate自己的方法查部分字段,可以在反向更新这个类的。。。

支持(0) 反对(0) BKY丶AIR | 园豆:182 (初学一级) | 2013-09-04 17:15

@BKY丶AIR: 能给段代码示例下吗?我看是否同 EF 的代码模式一致。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2013-09-04 17:17

@Launcher: 就是Hibernate中查询的时候 用new啊 new 对象(部分属性) ,然后返回的是对象,可以直接按照正常情况操作这个对象啊。。  

支持(0) 反对(0) BKY丶AIR | 园豆:182 (初学一级) | 2013-09-04 17:19

@Launcher: 如果非要代码的化。明天有空给你找段。。

支持(0) 反对(0) BKY丶AIR | 园豆:182 (初学一级) | 2013-09-04 17:19

@BKY丶AIR: 一定要给代码。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2013-09-04 17:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册