首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASPNETBOILERPLATE .Net核心模板-现有数据库代码示例请求

问ASPNETBOILERPLATE .Net核心模板-现有数据库代码示例请求
EN

Stack Overflow用户
提问于 2017-06-23 15:39:11
回答 3查看 1.5K关注 0票数 1

我们希望在我们的企业实现ABP模板。我们现有的应用程序DB不能与代码优先EF一起使用。企业将不允许使用代码优先方法。所以我们需要使用db优先方法。如果有人使用现有的DB和SPs实现了ABP。您能分享一下您对启用db优先使用的模板所做的所有更改的代码片段吗?非常感谢所有的回复!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-06-28 06:09:50

  1. 从任何模板创建.NET核心新项目( 挂牌 ) dotnet new mvc -au None -f netcoreapp1.0
  2. EF支持现有的DB( details ),详细说明是这里 .Basically,您将使用Scaffold命令生成所有模型类。

请注意,Scaffold-DbContext还不支持StoredProcedures,而在作品 .So中,您可能需要以不同的方式来管理它。

票数 1
EN

Stack Overflow用户

发布于 2017-06-24 05:49:17

我想你不能首先使用EF代码,因为你的公司不想失去你当前的数据库,数据,SPs等等。

因此,我的建议是创建一个ABP应用程序,并以与当前关系模型(数据库)相匹配的方式创建实体。这是正确的,因为EF足够灵活,可以定制生成的关系模型:

  • 表之间的关系
  • 表名和列名
  • 主键类型
  • 外键
  • 诸若此类。

在YourApp_DbContext类中,您可以重写OnModelCreating并个性化生成的关系模型。

一旦实体与关系模型匹配,就可以继续使用代码优先方法。

我认为使用数据库优先的方法是不正确的,而且ABP也不是为此而设计的。使用数据库-第一种方法只是最初生成你的实体(如果你愿意的话可以节省时间)。

关于SPs,您可以在EF中调用SPs。您可以执行原始SQL查询,结果可以映射到实体或任何其他自定义类。

我希望你发现它有用。

票数 0
EN

Stack Overflow用户

发布于 2017-06-28 05:57:05

您不能使用,但仍然可以利用代码优先实体映射。对于现有的数据库表,请使用反向工程工具创建数据库的代码优先模型。

对于存储过程,您可以使用Dapper (它与aspnetboilerplate 单击此处集成)。另一方面,实体框架也支持存储过程。您必须创建自定义存储库> 点击这里获取更多信息。

这是一个正在执行的示例自定义命令。这样你就可以运行sp..。有关更多信息,请看这里

代码语言:javascript
复制
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();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44725291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档