Entity Frameworkでストアドプロシージャを使用して、useridでdelete userをコードファーストで作成します。しかし、私はEntity Frameworkの初心者なので、この作業をどのように行うことができるのか分かりません。誰でも私にそれをどうすればいいのか教えてくれますか?Entity Frameworkをコードファーストで使用してストアドプロシージャを呼び出す方法は?
これは、これまでの私のコードです:
は、SQL Serverでストアドプロシージャ:
CREATE PROCEDURE [dbo].[DeleteUserById]
@UserId bigint
AS
BEGIN
DELETE FROM [dbo].[Users]
WHERE id = @UserId
END
は今、今、このストアドプロシージャは、コード内で使用することができますか?私は誰にも教えてください知らない。
これは私のクラスモデルビルダーです:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext() : base("DefaultConnection")
{
}
public virtual DbSet<UserInfo> UserInfo { get; set; }
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
public virtual ObjectResult<List<Users>> GetUsers()
{
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<List<UserInfo>>("GetUsers");
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Users>()
.MapToStoredProcedures(s => s.Delete(u => u.HasName("DeleteUserById", "dbo")
.Parameter(b => b.id, "userid"))
);
}
}
これは、コントローラの私のdeleteメソッドです:
public string DeleteUsers(int id)
{
//here how can call this sp and delete this user
}
誰もが知っている場合は、このタスクで私を助けてください。
[この質問](http://stackoverflow.com/questions/643880/commandtype-text-vs-commandtype- storedprocedure)は、2つの可能な方法とその利点について説明しています。 –
しかし、このコードでは、私はこのコードを書いているかどうかは正しいか間違っているのですか? – coderwill
エンティティフレームワークlinqコマンドでユーザを削除できます。 [この回答を確認](http://stackoverflow.com/questions/31672899/how-do-i-delete-single-record-from-table-using-ef-6-1-1)。ありがとう –