我一直在尝试使用MVC 3的EF 4.1(代码优先).我正在考虑应用程序何时需要更改.我测试了几个场景.我喜欢在模型(我的POCO)发生变化时手动编辑数据库的想法.
更改模型时出现ASP.NET错误:
"自创建数据库以来,支持'CTCMContext'上下文的模型已经发生了变化.手动删除/更新数据库......"
现在,它说我可以" 手动更新数据库 ",但我做了,仍然得到相同的错误.我错过了什么!!?!
编辑
这与EF生成的模型哈希有关吗?
migration data-migration entity-framework ef-code-first entity-framework-4.1
这就是我想要做的事情:
class MyDbContext : DbContext
{
private static Expression<Func<MyClass, int>> myExpression1 = x => /* something complicated ... */;
private static Expression<Func<Item, int>> myExpression2 = x => /* something else complicated ... */;
public object GetAllData()
{
return (
from o in MyClassDbSet.AsExpandable()
select new
{
data1 = myExpression1.Invoke(o), // problem 1
data2 = o.Items.Select(myExpression2.Compile()) // problem 2
}
);
}
}
Run Code Online (Sandbox Code Playgroud)
更新:
myExpression 必须与我的查询保持分离,因为我想在多个LINQ查询中重用它.
更新2:
分离myExpression成myExpression1和myExpression2明确指出,我想单独重用他们的事实.
更新3:
添加了LINQkit示例.
问题1抛出:无法将"System.Linq.Expressions.FieldExpression"类型的对象强制转换为"System.Linq.Expressions.LambdaExpression".
问题2抛出:内部.NET Framework数据提供程序错误1025.