繁体   English   中英

如何将类连接到Linq-to-Sql?

[英]How do I hook up classes to my Linq-to-Sql?

Linq / Linq-to-Sql / C#新手问题,但我似乎找不到任何有用的信息。 我可能没有正确说明问题。 任何帮助表示赞赏。

因此,我有一些现有的数据库表,并且已经从中生成了DBML文件。 我有部分类和DataContext。 如何将我的实体类与此连接起来?

我只是想念一些很明显的东西吗?

谢谢

如果要将Entity类与部分DAO类分开(这对于不平凡的应用程序来说是一件好事),最直接的方法是在两者之间创建一个映射层(例如,将DAO类中的PropertyA映射到Entity类中的PropertyB )。

如果两层之间的大多数字段名称/类型都相同,那么节省大量冗余编码的一种方法是使用诸如AutoMapper的映射库。 它可以轻松处理相同的属性,并且可以将其配置为处理不相同的属性,而在大多数情况下无需花费太多精力。

在MVC项目中,我通常在存储库中执行此操作。 我将使用Map()函数来接受一种类型的对象并创建另一种类型的对象。 例如,要将数据层Order类映射到域层Order类:

public Domain.Order GetOrder(int orderID)
{
    Data.Order order = context.Orders.Where(o => o.OrderID = orderID);  // 
    Domain.Order newOrder = Map(order);
    return newOrder;
}

public Domain.Order Map(Data.Order order)
{
    if (!UsingAutomapper)
    {
        // raw way
        Domain.Order newOrder = new Domain.Order
                           {
                               ID         = order.OrderID,
                               Number     = order.OrderNumber,
                               OrderDate  = order.OrderDate
                           };
        return newOrder;
    }
    else  // let AutoMapper do the dirty work
    {
        return Mapper.Map(order);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM