美好的一天!
我创建了一个WCF RIA服务,如this示例中所述,但我的示例使用 EF 6.1 和 GetAllOrders
方法返回一个集合来自数据库。
public class RiaService : DomainService
{
[Query(IsDefault = true)]
public IQueryable<rb17> GetAllOrders()
{
var model = new Model1();
return model.Orders;
}
protected override int Count<T>(IQueryable<T> query)
{
return query.Count();
}
}
之后,我创建一个lightswitch项目,添加数据源作为我的WCF RIA服务并添加屏幕
但是当我运行一个项目时,列表屏幕返回错误:
的 "Unable to load data. Please check your network connection and try loading again."
即可。
请解释一下,我必须在哪里初始化连接?在我的WCF RIA服务方法 GelAllOrders
中,一切正常,当我设置断点时,方法返回集合可查询。在课程 Model1
中已添加了connectionstring。为什么LS请求另一个连接?
答案 0 :(得分:0)
只需检查几件事情:
如果没有唯一的ID属性,LightSwitch 会对实体产生问题,但通常不会导致您提及的错误。但是,这个错误可能是由很多不同的东西造成的,跟踪起来非常困难。
您使用EF 6.1的事实应该不是问题。只要满足上面提到的这两个规则,LightSwitch 如何对您创建实体无关紧要。数据库连接是导致该错误的常见原因,但是当您调试时,您说您可以看到正在创建的记录吗?
答案 1 :(得分:0)
这是工作。
通过将初始化模型上下文的连接字符串添加到构造函数来解决问题。
public class Model1 : DbContext
{
public Model1()
{
const string temp =
@"data source=.\sqlexpress;initial catalog=TestDb;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework";
Database.Connection.ConnectionString = temp;
Database.SetInitializer<Model1>(null);
}
public virtual DbSet<Orders> Orders { get; set; }
}