我可以通过Linq将字段组合到Sql

时间:2009-08-03 08:10:40

标签: c# linq-to-sql dynamic-data

我是Linq to Sql的新手,我想要实现的是在Entity类上创建一个只读属性,它是多个字段的组合,特别是我想创建一个名称字段,它结合了 - title ,姓氏和姓氏。

我可以通过更改.designer.cs文件看到如何做到这一点,但知道我不应该触摸它。

我正在尝试这样做,以便在动态数据中我得到一列而不是多列。

2 个答案:

答案 0 :(得分:4)

这里的诀窍是使用partial class;创建一个新的.cs文件,并在同一名称空间中 添加一个为您的类型命名的新类:

namespace My.Data.Namespace {
    partial class Employee {
        public string Foo {
            get {return Forename + " " + Surname; } // etc
        }
    }
}

原始(生成的)类文件结合使用。这是在生成的实体(包括数据上下文)中添加附加功能的常用方法。您可能还想查看“部分方法”,因为LINQ-to-SQL定义并使用了许多部分方法。

有一点需要注意:如果你的dbml被调用MySystem.dbml,那么避免创建一个MySystem.cs文件(可能是你的部分类);代码生成器中存在一个错误,可能导致此错误。只需将其他名称命名即可。

答案 1 :(得分:0)

在你的LINQ select语句中,为什么不使用类似的东西:

select new {FullName = x.FirstName + " " + x.Surname};

不确定语法是否100%,但请查看这个想法。