[英]Settings C# dynamic object type name
我想将动态对象保存到数据库。 数据库表名称将动态设置。 所以我没有任何课程。
private static dynamic CreateModel()
{
var model = string.Format("{{'id': '{0} - {1}', 'name':' Path - ', 'length':'{2}' }}", Guid.NewGuid(), DateTime.Now,new Random().NextDouble() * 10 );
return JsonConvert.DeserializeObject(model);
}
这将创建动态对象。 我将其添加到实体框架通用存储库中。
using (var repository = new EFRepository(new Context()))
{
repository.SaveOrUpdate<????>(CreateModel())
}
我无法设置类型名称。 我可以在这里设置一个随机名称。
( repository.SaveOrUpdate<T>
是通用方法)
您不能那样使用EF。
您不能通过动态执行SaveOrUpdate方法,因为dynamic
可以是任何东西,可以是字符串,整数或对象。 而且,编译器在运行应用程序之前是不会知道的,因为dynamic
类型不是在编译时而是在运行时解析的。
话虽如此,但您可以成像,所以不能在泛型<T>
使用dynamic,因为T需要是一个引用,并且它必须在运行时解决它的动态问题。
我认为一种更好的方法是使用OO来帮助您,使用工厂创建基类来构造动态对象,并使用该基类代替动态对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.