首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >插入与Linq省略一些“假”列

插入与Linq省略一些“假”列
EN

Stack Overflow用户
提问于 2011-10-06 14:40:14
回答 1查看 388关注 0票数 1

我在数据库中有一个包含以下列的表:ID, Name, Txt。我们正在使用Linq到Sql来实现DAL。在那里,另一个collegue增加了两个额外的列,因此在代码中,相同的表结果是:ID, Name, Txt, NameTemp, TxtTemp

这两个“假”表用于LINQ联接中代码的不同部分,并使用SQL进行分析,解析后的SQL查询接受“真实”列,一切正常工作。现在我需要使用该表进行插入,但我得到了一个异常,因为语句中也使用了假列。

,因为我不能在DB中添加两个假列(因为在数据库中没有用处),我是否可以在Linq省略这两列的情况下进行插入?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-07 00:29:04

我想我知道你的目标了。您应该能够向部分linq类添加属性--没有问题,唯一的问题是,如果您尝试对这些“假”列使用linq查询,那么当linqtosql试图引用数据库中不存在的列时,您将得到一个异常。我曾经经历过这种情况--我希望能够选择数据库中不存在的列(但是在linq2sql dbml类中这样做),并让linq2sql将这些列转换成数据库中的列。唯一的问题是,没有真正简单的方法可以做到这一点--您可以向“假”属性添加属性,以便linq2sql认为NameTmp和TxtTmp实际上是sql世界中的名称和Txt,唯一的问题是,当插入记录时,转换后的sql会两次指定同一列(这是SQL不喜欢的,并引发异常)。

您可以使用IsDbGenerated = true标记该列--这将允许您插入记录而不会出现双列问题,但如果没有linqtosql抱怨无法更新计算列,则无法更新记录。我想你可以用sproc来绕开这件事?

不久前,我在微软( Microsoft )上记录了一个错误,他们永远不会修复这个错误。这里的信息也许能帮你得到你想要的-

http://social.msdn.microsoft.com/Forums/eu/linqtosql/thread/5691e0ad-ad67-47ea-ae2c-9432e4e4bd46

https://connect.microsoft.com/VisualStudio/feedback/details/526402/linq2sql-doesnt-like-it-when-you-wrap-column-properties-with-properties-in-an-interface

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7675960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档