C# 我可以通过Linq将字段合并到Sql吗
我是Linq to Sql的新手,我想实现的是在Entity类上创建一个只读属性,该属性是多个字段的组合,具体来说,我想创建一个名称字段,该字段组合了-title、forename和姓氏 我可以通过更改.designer.cs文件来了解如何做到这一点,但我知道我不应该碰它C# 我可以通过Linq将字段合并到Sql吗,c#,linq-to-sql,dynamic-data,C#,Linq To Sql,Dynamic Data,我是Linq to Sql的新手,我想实现的是在Entity类上创建一个只读属性,该属性是多个字段的组合,具体来说,我想创建一个名称字段,该字段组合了-title、forename和姓氏 我可以通过更改.designer.cs文件来了解如何做到这一点,但我知道我不应该碰它 我正试图这样做,以便在动态数据中获得一列而不是多列。这里的技巧是使用分部类;创建一个新的.cs文件,并在同一命名空间中添加一个新的类,该类以您的类型命名: namespace My.Data.Namespace { p
我正试图这样做,以便在动态数据中获得一列而不是多列。这里的技巧是使用
分部类;创建一个新的.cs文件,并在同一命名空间中添加一个新的类,该类以您的类型命名:
namespace My.Data.Namespace {
partial class Employee {
public string Foo {
get {return Forename + " " + Surname; } // etc
}
}
}
这与原始(生成的)类文件相结合。这是向生成的实体(包括数据上下文)添加附加功能的常用方法。您可能还想看看“分部方法”,因为LINQtoSQL定义并使用了许多分部方法
一个警告:如果您的dbml被称为MySystem.dbml
,则避免创建MySystem.cs
文件(可能是针对您的部分类);代码生成器中存在一个错误,可能导致此操作失败。请给它起个别的名字。在您的LINQ select语句中,为什么不使用如下内容:
select new {FullName = x.FirstName + " " + x.Surname};
不确定语法是否100%在那里,但检查一下想法。我已经这样做了,但是在动态数据中,没有看到它出现在构建的网格中,还有什么我需要做的吗?嗯。。。我不知道。如果该属性可以从其他代码获得,那么我想知道动态数据是否在查看元模型(而不是类型的属性)。在这种情况下,很难让它工作。也可能只是因为动态数据需要读/写属性。。。我不知道,找到答案了。我需要添加[ScaffoldColumn(true)]属性,现在它出现在网格中。非常感谢您为[ScaffoldColumn(true)]
添加额外信息;下次我会把它归档-P