为什么我们在EF6中的存储过程映射中设置“属性”

时间:2018-08-27 10:41:37

标签: c# entity-framework stored-procedures

我是EF6的新手。我用输入类型的变量定义了一个SP。在SP中指定哪个变量与哪个列关联。那么,为什么要在存储过程映射中设置“属性”?不同? Sp Mapping

1 个答案:

答案 0 :(得分:1)

发生的事情是从SQL类型到.NET类型的映射。

.NETSQL具有不同的类型。

您可以找到列表here

实体框架将为您处理转换。

这是桌子的一部分:

SQL Server Database Engine type         .NET Framework type         SqlDbType 
-------------------------------------------------------------------------------
bigint                                 Int64                        BigInt        
binary                                 Byte[]                       VarBinary 
bit                                    Boolean                      Bit       
char                                   String                       Char      
date 1                                 DateTime                     Date 1        
datetime                               DateTime                     DateTime      
datetime2                              DateTime                     DateTime2

关于属性的命名:EF有一些(有时很烦人)命名约定。

此处的更多信息:https://docs.microsoft.com/en-us/ef/ef6/modeling/code-first/conventions/built-in

在这里:Database Naming Conventions by Microsoft?

特别注意:

  

“不要在存储过程中添加sp_前缀,因为该前缀保留用于标识系统存储过程。”

https://blogs.msdn.microsoft.com/robcaron/2005/01/27/prefixing-stored-procedure-names-with-sp_/