我们希望在我们的企业实现ABP模板。我们现有的应用程序DB不能与代码优先EF一起使用。企业将不允许使用代码优先方法。所以我们需要使用db优先方法。如果有人使用现有的DB和SPs实现了ABP。您能分享一下您对启用db优先使用的模板所做的所有更改的代码片段吗?非常感谢所有的回复!
发布于 2017-06-28 06:09:50
发布于 2017-06-24 05:49:17
我想你不能首先使用EF代码,因为你的公司不想失去你当前的数据库,数据,SPs等等。
因此,我的建议是创建一个ABP应用程序,并以与当前关系模型(数据库)相匹配的方式创建实体。这是正确的,因为EF足够灵活,可以定制生成的关系模型:
在YourApp_DbContext类中,您可以重写OnModelCreating并个性化生成的关系模型。
一旦实体与关系模型匹配,就可以继续使用代码优先方法。
我认为使用数据库优先的方法是不正确的,而且ABP也不是为此而设计的。使用数据库-第一种方法只是最初生成你的实体(如果你愿意的话可以节省时间)。
关于SPs,您可以在EF中调用SPs。您可以执行原始SQL查询,结果可以映射到实体或任何其他自定义类。
我希望你发现它有用。
发布于 2017-06-28 05:57:05
您不能使用,但仍然可以利用代码优先实体映射。对于现有的数据库表,请使用反向工程工具创建数据库的代码优先模型。
对于存储过程,您可以使用Dapper (它与aspnetboilerplate 单击此处集成)。另一方面,实体框架也支持存储过程。您必须创建自定义存储库> 点击这里获取更多信息。
这是一个正在执行的示例自定义命令。这样你就可以运行sp..。有关更多信息,请看这里
using (var uow = uowManager.Begin(TransactionScopeOption.Suppress))
{
using (var con = new SqlConnection(ConnectionString))
{
con.Open();
using (var command = new SqlCommand("select * from ... ", con))
{
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
return reader.GetString(0);
}
}
}
}
uow2.Complete();
}https://stackoverflow.com/questions/44725291
复制相似问题