【发布时间】:2011-03-28 01:46:42
【问题描述】:
Entity Framework 4 返回 KEY/Primary Key
我正在尝试找到一种方法来返回键/主键,而无需创建存储过程来为我执行此操作:
CREATE PROCEDURE [dbo].[UserRecords]
(
@Name varchar(10)
) AS
-- INSERT the new record
INSERT INTO MyTable (Name)
VALUES(@Name)
-- Now return the InventoryID of the newly inserted record
SELECT SCOPE_IDENTITY() AS ID
虽然 Visual Studio 2010 然后我使用模型浏览器中的 Add Function Import 并创建一个复杂类型。
然后虽然 C# 我使用以下代码来检查它的工作。
SQL_DB_Entities DB= new SQL_DB_Entities();
var ReturnValue = DB.UserRecords("BOB").First();
Console.Write(ReturnValue.ID);
Console.Read();
我只是在寻找一种更好的方式来返回 ID,并且非常确定我不会让自己在赛道上持续头痛。
如果您认为这不是归还密钥的最佳方式,请告诉我。
我已经尝试过这种方式,但返回 0
SQL_DB_Entities DB = new SQL_DB_Entities();
User UserObject = new User{Name = “BOB”};
DB.AddToUserTable(UserObject);
DB.SaveChanges():
Int key = UserObject.ID;
Console.WriteLine(key.ToString());
我还应该提到,数据库正在处理主键而不是我的应用程序。
【问题讨论】:
-
从内存中 EF 通常会选择/返回插入的对象,包括 PK。我不确定您为什么没有得到它,以及它是否是明确获得 PK 的正确方法。为什么需要它?
-
最后一个例子必须有效。如果不是,您配置错误。
-
@Ladislav 和 @Ben 你都 100% 正确,非常感谢你的帮助。
标签: c# entity-framework entity-framework-4 primary-key key