【发布时间】:2015-07-09 12:57:59
【问题描述】:
我有两个关于使用实体框架处理数据库的问题。我正在使用 SQL Server 2012/14 web api 2 (VS 2012/13) 但这没关系,因为我的问题是关于 EF6 的代码优先方法。在代码优先的方法中,如果表不存在,EF 会为您创建它(EF 的真棒功能)。
1.) 通常当 EF 创建表时,它使用 nvarchar 作为字符串数据类型,但我需要使用 varchar。如何在 EF 中指定? (也适用于其他数据类型?)
2.) 我还需要使用 EF 创建存储过程(如果它在 DB 中不存在)。还有我如何从 EF 调用它?存储过程接受输入参数并给出输出记录。
如果模型或逻辑发生任何变化,应自动反映在 DB 中。 [非常重要]
要求:请保持您对解释的理解程度超级简单。我刚刚看了一些 YouTube 视频并试图理解它并在我的项目中实施它。但我不想只是复制代码,我想理解它,所以请为每一行提供解释。多种解决方案将不胜感激。 (我的意思是 Data Annotation 和 Fluent API)
我最后的选择: 我正在考虑创建脚本并在“up”函数中执行它(迁移发生并创建所有 SQL 对象) 但是这种方法的问题是,如果我的模型有任何变化,我也必须在该脚本中反映相同的变化,因为它是硬编码的。当我别无选择时,我将使用此选项。我还没有尝试过这个选项,所以我可能完全错了。
提前致谢。
【问题讨论】:
-
可以配置EF默认使用varchar:stackoverflow.com/questions/22120007/…
标签: c# entity-framework entity-framework-6