C# LINQ到SQL插入行为中的非生成属性

C# LINQ到SQL插入行为中的非生成属性,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,是否可以强制LINQ到SQL设计器行为编辑器识别设计器本身未生成的表实体上的属性?也就是说,我希望将自定义属性(在我自己的分部类中定义)作为参数传递给存储过程 我已经尝试在XML中手动指定参数名(这对于某些其他事情来说是个奇迹,比如当L2S设计器无法确定返回类型是否与现有表匹配时强制使用SP返回类型)。不幸的是,这不起作用 我目前正在移植一组用.NET1.1编写的web服务,以利用自那时以来出现的一切。我正试图整合LINQ对象中由两层业务对象(主要是从DB到对象的字段名更改和类型转换)负责的所有

是否可以强制LINQ到SQL设计器行为编辑器识别设计器本身未生成的表实体上的属性?也就是说,我希望将自定义属性(在我自己的分部类中定义)作为参数传递给存储过程

我已经尝试在XML中手动指定参数名(这对于某些其他事情来说是个奇迹,比如当L2S设计器无法确定返回类型是否与现有表匹配时强制使用SP返回类型)。不幸的是,这不起作用

我目前正在移植一组用.NET1.1编写的web服务,以利用自那时以来出现的一切。我正试图整合LINQ对象中由两层业务对象(主要是从DB到对象的字段名更改和类型转换)负责的所有行为


在这种情况下,最简单的解决方案就是在DB中更改SP的参数类型,这就是我在这种情况下要做的。然而,在DB中已经有三组独立的SP在运行。旧的web服务。NET2.0Web服务和网站。我试图避免WCF web服务SP的激增,因为考虑到大多数数据访问是如何完成的,我认为这将是一种非常常见的情况。

设计器中存在许多问题,支持部分类声明的属性。其中一些问题将在2010年得到解决,但我不确定是否涵盖了这一具体问题。您可能希望在connect.microsoft.com上输入一个bug项目,让团队查看它

同时,我怀疑您将不得不在部分类中手动管理这些函数,而不是通过designer/dbml。LINQ to SQL的大部分存储过程支持是基于约定的,因此只要方法命名正确,即使您没有在dbml中显式配置它,也应该使用它。

它将显示为“否”,您需要:

  • 不将SP用于插入行为
  • 试试吉姆的建议
  • 保留该属性,使其可用
  • 手动编辑生成的代码(恶心)*这不是一个建议,只是一个选项
要为其他可能查看它的人简化此操作:如果右键单击设计器(.dbml)中的表,并选择“配置行为”,则可以指定要使用的存储过程,而不是生成的命令(插入、删除、更新)。如果选择使用存储过程,它将允许您将SP参数与类上的属性相匹配。问题是,该类中完全缺少分部类的属性。