Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么模型导航不使用自跟踪实体?_C#_Wcf_Entity Framework_Self Tracking Entities - Fatal编程技术网

C# 为什么模型导航不使用自跟踪实体?

C# 为什么模型导航不使用自跟踪实体?,c#,wcf,entity-framework,self-tracking-entities,C#,Wcf,Entity Framework,Self Tracking Entities,我已经用外键生成了数据模型(实体框架)。它是由数据库生成的数据模型。在那之后,一切都工作了,导航等等。接下来,我生成了一个自跟踪实体。不幸的是,我失去了导航功能。例如,此查询现在不起作用: public int GetUserTagsNumber( SessionContainer inputData ) { return db.User_t.Single(x => x.pid == inputData.Pid).Tag_t.Count(); } 我是自我

我已经用外键生成了数据模型(实体框架)。它是由数据库生成的数据模型。在那之后,一切都工作了,导航等等。接下来,我生成了一个自跟踪实体。不幸的是,我失去了导航功能。例如,此查询现在不起作用:

    public int GetUserTagsNumber( SessionContainer inputData ) {
        return db.User_t.Single(x => x.pid == inputData.Pid).Tag_t.Count();
    }
我是自我跟踪实体和wcf方面的新手。因此,我的问题是:

为什么导航在服务端不起作用

如果可以,那么对于哪些导航属性是可见的?

您的“模型导航”称为延迟加载,并且自跟踪实体不支持按设计进行延迟加载,因此您必须使用即时加载:

db.User_t.Include("Tag_t").Single(x => x.pid == inputData.Pid).Tag_t.Count();
但这是一种错误的查询方式,因为您必须从数据库中加载用户和所有标记,才能对标记进行计数。使用直接查询从数据库中获取计数怎么样

db.Tag_t.Where(/* here put condition to find tags used by your user */).Count();

是的,你们说得对,这不是获取数据的有效方法,这是唯一一个说明我问题的例子。谢谢你的回答。