使用 DataContext 插入并获取 ID CSLA C#
Insert using DataContext and getting ID CSLA C#
如何使用 CSLA 在 C# 中的插入过程中检索 ID?存储过程向数据库 table 插入,然后在插入后有一个 SELECT @Id
(用 SCOPE_IDENTITY()
设置)。
这是要在 C# 中插入的代码:
using (var mgr = ContextManager<PersonDataContext>.GetManager("TestDB"))
{
var results = mgr.DataContext.up_StoredProcToInsert(
"David",
30,
);
}
尝试以下基于 CRUD Operations using Stored Procedure in Entity Framework 的示例:
SP:
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
C#代码:
DemoDB_JRDevEntities db = new DemoDB_JRDevEntities();
SP_Ins_Test_Result r=db.SP_Ins_Test("Raj").First();
string id= r.ResultId.ToString();
虽然该示例没有使用存储过程,但依赖于 EF 自己完成工作,您可以查看 ProjectTracker 示例中的 EF 数据访问层以了解如何实现插入操作:
public void Insert(ProjectDto item)
{
using (var ctx = ObjectContextManager<PTrackerEntities>.GetManager("PTrackerEntities"))
{
var newItem = new Project
{
Name = item.Name,
Description = item.Description,
Started = item.Started,
Ended = item.Ended
};
ctx.ObjectContext.AddToProjects(newItem);
ctx.ObjectContext.SaveChanges();
item.Id = newItem.Id;
item.LastChanged = newItem.LastChanged;
}
}
如何使用 CSLA 在 C# 中的插入过程中检索 ID?存储过程向数据库 table 插入,然后在插入后有一个 SELECT @Id
(用 SCOPE_IDENTITY()
设置)。
这是要在 C# 中插入的代码:
using (var mgr = ContextManager<PersonDataContext>.GetManager("TestDB"))
{
var results = mgr.DataContext.up_StoredProcToInsert(
"David",
30,
);
}
尝试以下基于 CRUD Operations using Stored Procedure in Entity Framework 的示例:
SP:
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
C#代码:
DemoDB_JRDevEntities db = new DemoDB_JRDevEntities();
SP_Ins_Test_Result r=db.SP_Ins_Test("Raj").First();
string id= r.ResultId.ToString();
虽然该示例没有使用存储过程,但依赖于 EF 自己完成工作,您可以查看 ProjectTracker 示例中的 EF 数据访问层以了解如何实现插入操作:
public void Insert(ProjectDto item)
{
using (var ctx = ObjectContextManager<PTrackerEntities>.GetManager("PTrackerEntities"))
{
var newItem = new Project
{
Name = item.Name,
Description = item.Description,
Started = item.Started,
Ended = item.Ended
};
ctx.ObjectContext.AddToProjects(newItem);
ctx.ObjectContext.SaveChanges();
item.Id = newItem.Id;
item.LastChanged = newItem.LastChanged;
}
}