使用DataContext插入并获取ID CSLA C#

使用DataContext插入并获取ID CSLA C#,c#,sql,csla,C#,Sql,Csla,在C#中插入时如何使用CSLA检索ID?存储过程在数据库表中进行插入,然后在插入后有一个SELECT@Id(它是用SCOPE\u IDENTITY()设置的) 这是要在C#中插入的代码: 使用(var-mgr=ContextManager.GetManager(“TestDB”)) { var results=mgr.DataContext.up\u StoredProcToInsert( “大卫”, 30, ); } 根据以下内容尝试以下示例: SP: C#代码: 虽然该示例不使用存储过程,但

在C#中插入时如何使用CSLA检索ID?存储过程在数据库表中进行插入,然后在插入后有一个
SELECT@Id
(它是用
SCOPE\u IDENTITY()
设置的)

这是要在C#中插入的代码:

使用(var-mgr=ContextManager.GetManager(“TestDB”))
{
var results=mgr.DataContext.up\u StoredProcToInsert(
“大卫”,
30,
);
}

根据以下内容尝试以下示例:

SP:

C#代码:


虽然该示例不使用存储过程,但依靠EF自己完成工作,您可以查看ProjectTracker示例中的EF数据访问层,了解如何实现插入操作:

公共作废插入(项目到项目)
{
使用(var ctx=ObjectContextManager.GetManager(“PTrackerEntities”))
{
var newItem=新项目
{
名称=项。名称,
描述=项目。描述,
已启动=项。已启动,
结束=项目。结束
};
ctx.ObjectContext.AddToProjects(newItem);
ctx.ObjectContext.SaveChanges();
item.Id=newItem.Id;
item.LastChanged=newItem.LastChanged;
}
}
using (var mgr = ContextManager<PersonDataContext>.GetManager("TestDB"))
{
    var results = mgr.DataContext.up_StoredProcToInsert(
        "David",
        30,
    );
}
CREATE PROCEDURE SP_Ins_Test 
    @name nchar(10)
AS
BEGIN

    SET NOCOUNT ON;
    INSERT INTO dbo.test(name)
    SELECT @name

    SELECT SCOPE_IDENTITY() AS ResultId
END
GO
DemoDB_JRDevEntities db = new DemoDB_JRDevEntities();
SP_Ins_Test_Result r=db.SP_Ins_Test("Raj").First();
string id= r.ResultId.ToString();