LINQ to SQL插入行为中的非生成属性

时间:2009-07-24 20:15:08

标签: c# linq linq-to-sql

是否可以强制LINQ to SQL设计器行为编辑器识别尚未由设计者自己生成的表实体的属性?也就是说 - 我想将一个自定义属性(在我自己的分部类中定义)作为参数传递给存储过程。

我已经尝试在XML中手动指定参数名称(这对于某些其他事情确实很奇怪,例如当L2S设计者无法理解返回类型与现有表匹配的事实时强制SP返回类型)。不幸的是,这不起作用。

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

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

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

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

  • 不使用SP进行插入行为
  • 尝试Jim的建议
  • 坚持财产,因此可以
  • 手动编辑生成的代码(yuck)*这不是一个建议,只是一个选项!