2010-06-26 21 views
1

嗨,如果我创建类产品的一些实例,然后从数据库使用LINQ采取一个产品,我可以将结果映射到此实例吗?mac var form linq某些实例

products produkt1 = new products(); 
var oneProduct= (from p in db.products where p.number == 640 select p) 
       .FirstOrDefault(); 
produkt1 = oneProduct; 

但当然它不工作,我应该怎么做?

回答

1
products oneProduct = (from p in db.products 
         where p.number == 640 
         select p).FirstOrDefault(); 

products oneProduct = db.products.FirstOrDefault(p => p.number == 640); 

不能映射例如从数据库到你,刚才创建的实例。

class products 
{ 
    public void CloneFrom(products source) 
    { 
     this.SomeThing = source.SomeThing; 
     ... 
    } 
} 

在:您可以到数据库实例的引用保存到您,如更换:直到你的类支持这种直接,通过一些方法,即

products produkt1 = new products(); // points to the first instance 
produkt1 = query.FirstOrDefault(...); // now points to the second instance. if this was the last reference, object probably will be deleted by GC soon 

要映射你怎么想是不可能的大多数情况下这是一个糟糕的主意,毫无意义的方法。

+1

+1点符号形式,这是更简单的国际海事组织。在适当的情况下查询表达式很棒,但没有理由在这里使用它。 – 2010-06-26 12:55:55

+0

@ user428547:很高兴帮助! :) – abatishchev 2010-11-28 20:26:32

0

为什么你不编辑选定的实体(oneProduct)?

您能详细阐述一下您的意图吗?您是否想创建所选实体的副本以便将新副本作为新行插入?

1
products produkt1 = db.products.FirstOrDefault(p => p.number == 640);