2011-02-03 113 views
3

我在Entity Framework中有以下内容。使用纯.NET类的实体框架实体类映射

表 - 国家

  • 列表项
  • COUNTRY_ID
  • Dialing_Code
  • ISO_Alpha2
  • ISO_Alpha3
  • ISO_Full

我想只将这个实体模型的选定字段映射到我的域类。

我的域模型类是

public class DomainCountry 
{ 
    public int Country_ID { get; set; } 
    public string Dialing_Code { get; set; } 
    public string ISO_3166_1_Alpha_2 { get; set; } 
} 

下面的工作,但插入或更新是不可能的。为了获得插入或更新,我们需要使用ObjectSet <>,但它不支持我的情况。

IQueryable<DomainCountry> countries = 
    context.Countries.Select(
     c => 
     new DomainCountry 
      { 
       Country_ID = c.Country_Id, 
       Dialing_Code = c.Dialing_Code, 
       ISO_3166_1_Alpha_2 = c.ISO_3166_1_Alpha_2 
      }); 

有没有一个很好的解决方案呢?它的伤口真的很棒。

理想情况下,它将是种类代理类这将支持所有的期货,但高度可定制。

也就是说,只有我们想暴露给外部世界的列

回答

0

“纯.NET类”一词是POCO - 普通的旧CLR对象(受POJO,普通的旧Java对象的启发)。

阅读这篇博客系列,这对我帮助很大:

http://blogs.msdn.com/b/adonet/archive/2009/05/21/poco-in-the-entity-framework-part-1-the-experience.aspx

+0

我看到上面的博客和他们解释了一些事情,这几乎similat到的LINQ to SQL。唯一的区别是他们已经使用了对象上下文而不是Datacontext,并且代表GetTable <>他们使用了CreateObjectSet。我没有发现更多的差异。如果有任何其他方式可以延长你的帮助。 – Elangesh 2011-02-03 16:13:59

0

我想要做同样的事情。我的目标是构建一个WCF服务,它可以使用与我通过共享DLL和发送/接收相同类的应用程序相同的一组对象。另外,我也想限制暴露的字段。在思考了一段时间之后,似乎用户定义的演员似乎可以做到这一点。看看它是否适合你。

http://www.roque-patrick.com/windows/final/bbl0065.html