使用C#和实体框架在mysql中的RunTime上创建表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用C#和实体框架在mysql中的RunTime上创建表相关的知识,希望对你有一定的参考价值。
我正在处理一个任务,我必须在按钮单击时使用现有数据源属性创建mysql表。以下是我的代码。
对此有何帮助?
public BaseDto CreateTempTable(int dataSourceId, int profileId)
{
var dataSourceData = Unit.DataSourceRepository.Find(x => x.DataSourceId == dataSourceId).FirstOrDefault();
var profileData = Unit.ProfileSettingRepository.Find(x => x.ProfileSettingId == profileId).FirstOrDefault();
var tableName = dataSourceData.Name +"_"+ profileData.Name;
var objectType = DynamicTypeBuilder.Createtype(dataSourceData);
var listType = typeof(List<>);
var constructedListType = listType.MakeGenericType(objectType);
AddTableIntempDb(tableName, constructedListType);
return Success();
}
private void AddTableIntempDb(string tableName, Type type)
{
//Code here
}
答案
EF是ORM,而不是数据库设计工具。我只能找到EF不支持动态模式的语句。
有人找到了work around it的方法(请注意链接的博客文章是关于创建临时表)。请记住,您的源代码控制将不知道您在生产中动态创建的所有表。
如果您真的想在运行时生成表,建议使用ADO.NET。
以上是关于使用C#和实体框架在mysql中的RunTime上创建表的主要内容,如果未能解决你的问题,请参考以下文章
我如何在 Swift 中的 RunTIme 上创建或生成新实体