2014-07-18 131 views
1

我想添加新的模块(项目)到我的解决方案,并首先使用实体​​框架代码只为我的数据库表的最低。我在其他模块中使用带有存储过程的ADO.NET。我计划将来从db中拆分表,但现在这是不可能的(表与其他表没有关系,但被旧模块使用)我不确定这样做是否是好的做法,我想请求帮助。实体框架代码首先为数据库表的子集

  • 是否有可能使用EF代码首先为我的数据库的表的子集?
  • 如何用代码首先初始化这些表?如果模型不匹配并重新创建新的数据库,我发现只有解决方案会丢弃整个 db。我需要删除并重新创建只有 表在我的项目中使用
  • 是不是很好的做法,使用更多的方法的数据库访问一个数据库?
  • 你看到这种方法有些问题吗?现在我看到问题与协调性和数据一致性(如果旧模块将以另一种方式与此表一起运行)

谢谢。

回答

2

1)是的。在我们的一个项目中,我们有数据库和我们迁移使用EF的存储过程。但不是一次。它花了一些时间,所以我们一起使用了Store procedures whit ADO.NET和EF。

2)我必须说我不确定这一点。我们已经创建了数据库,只有很少的变化。但是你可以自己创建表格。

3)我认为更好的是从EF调用存储过程,并在整个项目中使用它,如果你需要它们。但是同时使用,ADO.NET和EF是好的,如果你有理由的话。

4)为什么这会是问题,如果你会使用交易?

+0

谢谢你的回答。您可能使用数据库优先方法。我想先转换成代码。问题是我看到的是上下文同步。如果你已经有一些EF缓存数据的上下文,并且你通过ADO.NET方法改变了某些东西,那么上下文并不是最新的,而且我看起来像是问题。 –

+1

否否。我们先用现有的数据库代码。自EF 6.1/6.2不知道以来,这是新的。我仍然认为,如果您将使用具有必要的隔离级别的交易,它可能会运作良好。但也许会导致性能问题。 –

+0

谢谢你的回答。你真的帮了我! –