如何从object1和object2的连接返回object1列表并设置object1

时间:2016-05-26 08:44:16

标签: entity-framework linq

我正在查询一个Entity Framework Code First数据库,该数据库有两个独立的表,这些表连接了主键(Property1)和外键(PropertyX)。

我想返回<List>MyObject1,但只将MyObject1的一个属性更改为属性MyObect2的属性

这是我的代码:

 var myQuery = 
    from o1 in _db.MyObject1
    join o2 in _db.MyObject2 on o1.fkProperty10 equals o2.pkPropertyX //join foreign key to primary key
    where o2.PropertyY != null
    select o1;

 var myList = await myQuery.ToListAsync();

这会返回MyObject1

列表

然后,我想在MyObject1

中设置MyObject2的一个属性值
var myQuery = 
    from o1 in _db.MyObject1
    join o2 in _db.MyObject2 on o1.fkProperty10 equals o2.pkPropertyX
    where o2.PropertyY != null
    select new MyObject1Type { 
        Property1 = o1.Property1,
        Property2 = o1.Property2,
        Property3 = o1.Property3
        ...
        Property98= o1.Property98,
        Property99= o2.PropertyZ
    } 
    ;

 var myList = await myQuery.ToListAsync();

MyObject1有100个属性,因此我不想一次设置1个属性。

我想用简写类型语法来说o1=o1; 应该看起来像:

var myQuery = 
    from o1 in _db.MyObject1
    join o2 in _db.MyObject2 on o1.fkProperty10 equals o2.pkPropertyX
    where o2.PropertyY != null
    select new MyObject1Type {
         [this object]=o1, 
         Property99= o2.PropertyZ 
    } 
    ;

 var myList = await myQuery.ToListAsync();

如果我使用

select new MyObject1Type {
         this=o1, 
         Property99= o2.PropertyZ 
    } 

我收到了错误。

  

CS1604无法分配给'this',因为它是只读的..DNX 4.5.1 cs

如何修复上述代码?

如何设置一个属性,但保持所有其他属性与MyObject1相同?

0 个答案:

没有答案