Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 系统首先使用带有EF数据库的DDD样式存储库生成整数实体ID_Sql Server_Entity Framework_Domain Driven Design_Ddd Repositories - Fatal编程技术网

Sql server 系统首先使用带有EF数据库的DDD样式存储库生成整数实体ID

Sql server 系统首先使用带有EF数据库的DDD样式存储库生成整数实体ID,sql-server,entity-framework,domain-driven-design,ddd-repositories,Sql Server,Entity Framework,Domain Driven Design,Ddd Repositories,我们正在C/.NET/EF database first/SQL Server环境中实现一个基于DDD的系统。我们的域实体与EF生成的实体分开,存储库负责使用EF及其实体。我希望为新创建的实体生成系统生成的ID与数据库生成的ID/自动增量ID。自然的选择是使用GUID,但由于数据库大小的原因,这种选择会受到阻力。首选是使用int-ID NHibernate有一个我在过去使用过的HiLo机制,但它看起来没有类似物,或者至少在EF中没有生产准备好的类似物 哪些方法允许在SQL Server上首先使用

我们正在C/.NET/EF database first/SQL Server环境中实现一个基于DDD的系统。我们的域实体与EF生成的实体分开,存储库负责使用EF及其实体。我希望为新创建的实体生成系统生成的ID与数据库生成的ID/自动增量ID。自然的选择是使用GUID,但由于数据库大小的原因,这种选择会受到阻力。首选是使用int-ID

NHibernate有一个我在过去使用过的HiLo机制,但它看起来没有类似物,或者至少在EF中没有生产准备好的类似物


哪些方法允许在SQL Server上首先使用EF数据库生成唯一的整数系统生成ID?

否,Entity Framework不支持系统生成ID。如果您想自己实现它,可能需要覆盖派生DbContext中的SaveChanges,但我不建议您走这条路

不太清楚您的第一句话是什么意思。。。看起来您建议使用数据库生成的ID,而这正是我试图避免的,因为使用这种方法处理工作单元模式时会出现问题。谈论180度编辑:我认为指出EF不支持系统生成的ID是不正确的,它显然支持,而且与GUID配合使用也很好。它似乎无法帮助生成唯一的整数ID。我不是在谈论GUID,我建议仅在严格必要时使用GIUD。你应该告诉我们更多关于你的工作单元中存在的问题,因为我没有发现使用DB生成的Id和工作单元模式有任何问题。请参阅我上面发布的链接。