C# 首先使用代码的自定义CRUD存储过程
我在一个新项目中使用了EF6代码优先的方法,这非常好,但现在我在如何定制CRUD存储过程方面有点困难,以便在数据库中计算一些列 过程(摘要): 过程A:C# 首先使用代码的自定义CRUD存储过程,c#,sql-server,entity-framework,ef-code-first,C#,Sql Server,Entity Framework,Ef Code First,我在一个新项目中使用了EF6代码优先的方法,这非常好,但现在我在如何定制CRUD存储过程方面有点困难,以便在数据库中计算一些列 过程(摘要): 过程A: public class ProcessA: Process { public int A {get; set} } 过程B: public class ProcessB: Process { public int B {get; set} } 以上面的3个类为例,我如何首先在EF6代码中定制生成的存储过程,以便它可以例如:
public class ProcessA: Process
{
public int A {get; set}
}
过程B:
public class ProcessB: Process
{
public int B {get; set}
}
以上面的3个类为例,我如何首先在EF6代码中定制生成的存储过程,以便它可以例如:
- 插入
时,将Process
设置为Id
和count(*)+1
CreateDate=GETUTCTIME()
- 更新
时,在ProcessContact
表中设置Process
UpdateDate=GETUTCTIME()
mysql
、postgresql
、sql server
、oracle
或db2
,还是完全其他的。为什么要在DB中这样做?然后回到特定的产品代码。因为它是代码优先,所以我在代码中管理它。我不确定您是否可以修改生成的存储过程,非常确定您可以。如果没有,就复制它,然后修改它。然后EF可以选择映射到现有存储过程。我甚至不知道你为什么要使用存储过程(有时使用存储过程是有意义的)。你知道关键属性和保存/更新时的值注入吗?谢谢大家的反馈。我已经添加了标签。关于使用标识的密钥,在我的例子中,我希望它们是连续的(标识不能保证这一点),在另一个例子中,我没有把它放在这里,它必须被计算出来。关于日期时间的问题,它建议使用服务器日期时间而不是桌面。我不怀疑你的专业知识,但老实说,我不明白在数据库中设置一些值有什么问题。我知道更改数据库会导致我重写存储过程。
public class ProcessA: Process
{
public int A {get; set}
}
public class ProcessB: Process
{
public int B {get; set}
}