从用户定义的类创建SQL Server表[已关闭]

jm81lzqq  于 2022-11-28  发布在  SQL Server
关注(0)|答案(1)|浏览(139)

已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新问题,以便editing this post可以使用事实与引用来回答.

2天前关闭。
Improve this question
我正在创建一个迷你ORM,以便更好地学习C#中的反射。
我还想使用原生和纯C#,不使用实体框架或SQL Server Management Objects

public static void CreateTable(Type tableType, string connectionString)
{
     // codes to create table in database
}

问题是CreateTable方法,它存在很多问题,例如:

C#和SQL Server数据类型之间没有集成。例如,varcharnvarchartext都是(或Map到)string
因此,当用户创建此类时:

public class Person
{        
   public int ID { get; set; }        
   public string Name { get; set; }
}

对于Name,我应该使用哪种SQL Server数据类型?
最后,如果生成SQL查询并执行它是解决此问题的最佳方法,您的建议是什么?

wfypjpf4

wfypjpf41#

我应该使用哪种SQL类型作为Name???
如果你把Entity Framework作为一个例子,默认情况下,它们在所有情况下都将System.StringMap到NVARCHAR(MAX)。在Code First实体模型中使用property属性(例如[Column(DbType = "CHAR(10)")])允许开发人员显式地指定列类型。
也许您可以遵循这种方法,并默认为所有字符串都包含NVARCHAR(MAX),并在ORM中为特殊情况创建一些简单的属性。毕竟,直到运行时您才知道字符串的长度。

相关问题