2009-07-24 62 views
3

是否可以强制LINQ to SQL设计器行为编辑器识别尚未由设计器自己生成的表实体的属性?这是 - 我想传递一个自定义属性(在我自己的部分类中定义)作为参数存储过程。我试过在XML中手动指定参数名称(对于某些其他事情,例如当L2S设计者无法理解返回类型与现有表格匹配时强制SP返回类型),我试过手动指定参数名称。不幸的是,这是行不通的。LINQ to SQL插入行为中的非生成属性

我目前正在移植一组以.NET 1.1编写的Web服务,以便利用随后出现的一切。我试图整合LINQ对象中两层业务对象(主要是从DB更改字段名称到对象和类型转换)所处理的所有行为。

在这种情况下,最简单的解决方案是改变数据库中SP的参数类型,这就是我在这种情况下要做的。然而,在数据库中已经有三组独立的SP运行。旧的Web服务。 .NET 2.0 Web服务和网站。我试图避免WCF Web服务SP的泛滥,因为我认为考虑到大部分数据访问已完成,这将是一个非常普遍的现象。

+0

为了简化这一点,让其他人可以查看它:如果您右键单击设计器(.dbml)中的表并选择配置行为,您将能够指定使用存储过程而不是生成的命令(插入,删除,更新)。如果您选择使用存储过程,它将允许您将SP参数与类中的属性进行匹配。问题是来自分部类的属性完全没有。 – 2009-07-27 19:19:25

回答

4

在设计器中有许多问题支持部分类声明的属性。其中一些正在解决2010年,但我不确定是否涵盖这个具体问题。您可能想要在connect.microsoft.com上输入一个错误项目以使团队查看它。与此同时,我怀疑你将不得不手动管理这些函数,而不是通过designer/dbml在分部类中进行管理。 LINQ to SQL的大部分存储过程支持都是基于约定的,所以只要方法命名正确,即使没有在dbml中明确配置它,也应该使用它。

0

这样看来“不”,你将需要:

  • 不使用SP的插入行为
  • 尝试吉姆的建议
  • 坚持的属性,所以它是可
  • 手动编辑生成的代码(yuck)*这不是一个建议,只是一个选项!