代码之家  ›  专栏  ›  技术社区  ›  Antony Scott

我怎么能用温莎城堡来代替这个?

  •  1
  • Antony Scott  · 技术社区  · 14 年前

    我对温莎城堡有基本的工作知识,但我不知道下面代码的DI等价物…

        private static DbModel BuildModel()
        {
            var builder = new ModelBuilder();
            var types = Assembly.GetExecutingAssembly().GetTypes();
    
            foreach (var type in types)
            {
                if (type.Name.EndsWith("Configuration"))
                {
                    var entityConfiguration = Activator.CreateInstance(type);
                    var xx = entityConfiguration as StructuralTypeConfiguration;
                    builder.Configurations.Add(xx);
                }
            }
    
            var model = builder.CreateModel();
            return model;
        }
    

    这是为了在EF4代码优先方案中自动加载所有配置类。

    理想情况下,我希望它根据 StructuralTypeConfiguration .

    我是不是找错了用DI做这个的树?如果是这样,有没有比获取以“configuration”结尾的类型名更好的方法呢?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Krzysztof Kozmic    14 年前

    制作 ModelBuilder 取决于 StructuralTypeConfiguration ( you will need a CollectionResolver as well )

    全部注册 结构类型配置 实施。

    DbModel 应该注册 .UsingFactoryMethod(k=>k.Resolve<ModelBuilder>().CreateModel())