C# 无法在WCF服务中加载相关实体
我使用的是实体框架4.1。我需要创建一个WCF服务,它需要从现有数据库中获取数据。我正在使用wsHttp绑定。我使用了支持WCF的DbContext生成器。以下是已生成的两个类:C# 无法在WCF服务中加载相关实体,c#,wcf,entity-framework,C#,Wcf,Entity Framework,我使用的是实体框架4.1。我需要创建一个WCF服务,它需要从现有数据库中获取数据。我正在使用wsHttp绑定。我使用了支持WCF的DbContext生成器。以下是已生成的两个类: [DataContract(IsReference = true)] [KnownType(typeof(TestSummary))] public partial class Test { [DataMember] public int Id { get; private set; } [D
[DataContract(IsReference = true)]
[KnownType(typeof(TestSummary))]
public partial class Test
{
[DataMember]
public int Id { get; private set; }
[DataMember]
public virtual TestSummary TestSummary { get; set; }
}
以及
当我获取所有测试对象时,我没有得到与之相关的TestSummary。我的所有其他实体也会发生同样的情况。用于获取测试实体的代码:
List<Test> tests = new List<Test>();
using (TestModelContainer context = new TestModelContainer())
{
var query = (from t in context.Tests select t);
foreach (var t in query)
{
Test test = (Test)t;
tests.Add(test);
}
}
List tests=newlist();
使用(TestModelContainer context=newtestmodelcontainer())
{
var query=(从上下文中的t开始,测试选择t);
foreach(查询中的var t)
{
测试=(测试)t;
测试。添加(测试);
}
}
但是,当我在不支持WCF的情况下使用DbContext生成器生成类时,所有相关的实体也会被加载(我使用控制台应用程序对其进行了测试)。在查询中,您没有获取相关的
TestSummary
实体。您需要明确声明您希望通过向查询中添加Include
语句来获取相关的testsummary
var query = (from t in context.Tests.Include("TestSummary") select t);
此外,不需要创建列表测试
;您可以只返回从查询中获取的内容
using (TestModelContainer context = new TestModelContainer())
{
var query = (from t in context.Tests select t);
return query.ToList();
}
using (TestModelContainer context = new TestModelContainer())
{
var query = (from t in context.Tests select t);
return query.ToList();
}