Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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
在运行时创建一个类并在.Net中使用它?_.net_C_Sql Server_Reflection_Reflection.emit - Fatal编程技术网

在运行时创建一个类并在.Net中使用它?

在运行时创建一个类并在.Net中使用它?,.net,c,sql-server,reflection,reflection.emit,.net,C,Sql Server,Reflection,Reflection.emit,我希望在运行时根据存储在SQL Server上的属性和字段类型创建模型 例如,我有一个名为test的表 UserName varchar(50) not null, Password varchar(4) not null, IsAdmin bit not null 所以我必须在运行时创建这个模型 public class Test { public string UserName{get;set;} public string Password{get;set;} p

我希望在运行时根据存储在SQL Server上的属性和字段类型创建模型

例如,我有一个名为test的表

UserName varchar(50) not null,
Password varchar(4) not null,
IsAdmin bit not null
所以我必须在运行时创建这个模型

public class Test
{
    public string UserName{get;set;}
    public string Password{get;set;}
    public bool IsAdmin{get; set; }
}

您试图做的事情既复杂又容易出错。在运行时生成代码通常不是一个好主意。这种设计通常只是隐藏了设计的代码库、体系结构和实现中更深层次的问题


也就是说,可以从.NET4.0开始进行声明。您可以使用它们的集合(列表或字典)来存储它们,而不是生成整个类。

最简单的方法是使用PropertyBag实现或Decorator模式。这两种方法都不适合您的需要,有什么原因吗?在运行时实际编译代码需要做更多的工作,尽管这是可以完成的。您能解释一下如何使用该类吗?n第一个窗口用户可以选择数据库中的表字段,然后我在Sql Server中创建了该表,用户可以以其他形式显示所有表的列表和指定表的所有数据,因此,我应该根据用户创建的表创建域类,以便我可以绑定表上的数据列表,通过WPF应用程序中的GridView显示这些数据,等等…听起来您需要重新布线EF以生成模型运行时,这应该不会太难实现,我想看看EF7,您正试图解决一个使用元数据和ADO可以更容易解决的问题。是的,我同意。但在我的解决方案中,我没有任何表或模式,您知道,我的Sql模式也将由最终用户在运行时创建,因此,一旦最终用户创建了Sql模式,我需要在运行时创建我的模块…在第一个窗口中,用户可以选择DB中的表字段,然后我在Sql Server中创建此表,并且以其他形式,用户可以显示所有表的列表和指定表的所有数据,所以我应该根据用户创建的表创建域类,以便我可以绑定表上的数据列表,通过WPF应用程序中的GridView显示它,等等。。。