繁体   English   中英

设置C#动态对象类型名称

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM