0

我想将 POCO 类映射到数据库视图。我的目标是使用自定义数据库初始化器创建视图(实现IDatabaseInitializer<T>)

除非我弄错了,否则我必须使用 [Table("MyViewName"] 属性装饰映射到视图的类。但是,当我这样做时,Database.CreateIfNotExists()将创建一个名为 的表MyViewName,然后我才有机会执行SqlQuery创建看法。

我怀疑我做错了,但是在 IDatabaseInitializer 接口中只有一个方法可以使用,我看不出它可能是什么。

4

1 回答 1

0

一种可能的解决方案是简单地让 CreateIfNotExists 做这件事,然后删除新创建的表并用视图替换它。看起来有点hackish,但它确实有效。

if (context.Database.CreateIfNotExists())
{
    context.Database.ExecuteSqlCommand(@"drop table MyCustomView");
    context.Database.ExecuteSqlCommand(@"create view MyCustom View as ...");
}
于 2013-06-05T12:25:30.673 回答