【发布时间】:2012-02-29 14:57:25
【问题描述】:
我有一个存储过程,我想返回一个唯一标识符。所以我将一个唯一标识符声明为 OUTPUT。但后来我“拖放”它执行我的 LINQ to SQL DataClass 并且它无法识别我的返回类型。它只识别 int 或我的 linq 类。
我应该如何返回唯一标识符,以便可以将其与 LINQ 一起使用?
【问题讨论】:
标签: c# .net linq-to-sql stored-procedures uniqueidentifier
我有一个存储过程,我想返回一个唯一标识符。所以我将一个唯一标识符声明为 OUTPUT。但后来我“拖放”它执行我的 LINQ to SQL DataClass 并且它无法识别我的返回类型。它只识别 int 或我的 linq 类。
我应该如何返回唯一标识符,以便可以将其与 LINQ 一起使用?
【问题讨论】:
标签: c# .net linq-to-sql stored-procedures uniqueidentifier
我找到了how to return a uniqueidentifier 的解释。它包含一些有关返回 Guid 的示例。
解决方案:
对于使用 System.Data.SQLClient 的 .Net 客户端
解决方案是在插入语句中使用 OUTPUT 子句,这样 生成的主键可以用 SqlCommand 对象的 ExecuteScalar() 方法。
为了。使用 LINQ to SQL 的网络客户端
因为在这种情况下 SQL Server 会生成主键,所以 LINQ to SQL 只有在 Column 属性具有 IsDbGenerated=true 属性应用于实体属性 对应于底层主键列。
关于这个问题还有一个关于SO的问题:
LINQ to SQL entity column name attribute ignored with guid primary key
【讨论】: