ASPNETBOILERPLATE .Net Core 模板 - 现有数据库代码示例请求
ASPNETBOILERPLATE .Net Core template - Existing database code sample request
我们希望在我们的企业中实施 ABP 模板。我们现有的应用程序数据库不能与代码优先 EF 一起使用。企业不允许使用代码优先方法。所以我们需要使用db-first方法。
如果有人使用现有的 DB 和 SP 实施了 ABP。您能否分享一些您对启用 db-first 使用的模板所做的所有更改的代码片段。
非常感谢所有回复!
我猜您不能使用 EF Code-First,因为您的公司不想丢失您当前的数据库、数据、SP 等。没关系。
因此,我的建议是创建一个 ABP 应用程序并以与您当前的关系模型(数据库)相匹配的方式创建您的实体。这是正确的,因为 EF 足够灵活,可以自定义生成的关系模型:
- table
之间的关系
- table 和列名
- 主键类型
- 外键
- 等等。
在您的 YourApp_DbContext class 中,您可以覆盖 OnModelCreating 并个性化生成的关系模型。
一旦您的实体与您的关系模型相匹配,您就可以继续使用代码优先方法。
我认为使用数据库优先的方法不是正确的方法,ABP 也不是为此而设计的。使用数据库优先方法来最初生成您的实体(如果您愿意,可以节省时间)。
关于SP,可以在EF中调用SP。您可以执行原始 SQL 查询,结果可以映射到实体或任何其他自定义 class.
希望你觉得有用。
您不能使用代码优先迁移,但您仍然可以利用代码优先实体映射。对于现有数据库表,使用逆向工程工具创建数据库的代码优先模型。
对于存储过程,您可以使用 Dapper(与 aspnetboilerplate 集成 click here). On the other hand entity framework also supports stored procedures. You have to create custom repository > click here for more info。
这是一个正在执行的示例自定义命令。这样你就可以 运行 sp.. See here for more info
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();
}
从任何模板创建 .NET Core 新项目listed
dotnet new mvc -au None -f netcoreapp1.0
EF Core 支持现有的 DB(DB First approach),详细说明为 here 。基本上你将使用 Scaffold-DbContext 命令生成所有模型 类.
请注意 Scaffold-DbContext 尚不支持 StoredProcedures,它在 works 中。因此您可能需要以不同的方式进行管理
我们希望在我们的企业中实施 ABP 模板。我们现有的应用程序数据库不能与代码优先 EF 一起使用。企业不允许使用代码优先方法。所以我们需要使用db-first方法。 如果有人使用现有的 DB 和 SP 实施了 ABP。您能否分享一些您对启用 db-first 使用的模板所做的所有更改的代码片段。 非常感谢所有回复!
我猜您不能使用 EF Code-First,因为您的公司不想丢失您当前的数据库、数据、SP 等。没关系。
因此,我的建议是创建一个 ABP 应用程序并以与您当前的关系模型(数据库)相匹配的方式创建您的实体。这是正确的,因为 EF 足够灵活,可以自定义生成的关系模型:
- table 之间的关系
- table 和列名
- 主键类型
- 外键
- 等等。
在您的 YourApp_DbContext class 中,您可以覆盖 OnModelCreating 并个性化生成的关系模型。
一旦您的实体与您的关系模型相匹配,您就可以继续使用代码优先方法。
我认为使用数据库优先的方法不是正确的方法,ABP 也不是为此而设计的。使用数据库优先方法来最初生成您的实体(如果您愿意,可以节省时间)。
关于SP,可以在EF中调用SP。您可以执行原始 SQL 查询,结果可以映射到实体或任何其他自定义 class.
希望你觉得有用。
您不能使用代码优先迁移,但您仍然可以利用代码优先实体映射。对于现有数据库表,使用逆向工程工具创建数据库的代码优先模型。
对于存储过程,您可以使用 Dapper(与 aspnetboilerplate 集成 click here). On the other hand entity framework also supports stored procedures. You have to create custom repository > click here for more info。
这是一个正在执行的示例自定义命令。这样你就可以 运行 sp.. See here for more info
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();
}
从任何模板创建 .NET Core 新项目listed
dotnet new mvc -au None -f netcoreapp1.0
EF Core 支持现有的 DB(DB First approach),详细说明为 here 。基本上你将使用 Scaffold-DbContext 命令生成所有模型 类.
请注意 Scaffold-DbContext 尚不支持 StoredProcedures,它在 works 中。因此您可能需要以不同的方式进行管理