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# 从EF返回包含2列的自定义列表_C#_Wcf_Entity Framework - Fatal编程技术网

C# 从EF返回包含2列的自定义列表

C# 从EF返回包含2列的自定义列表,c#,wcf,entity-framework,C#,Wcf,Entity Framework,我有一个应用程序,基本上在服务器上存储文件,并在数据库中记录详细信息。另一个应用每天运行以查找“孤立”文件。保存详细信息的表格有两列(与此相关)TransId和SurvId。这些文件保存在一个文件夹结构中,其中许多SurvId在TransId中计数: C:\Files\23\1 C:\Files\23\2 C:\Files\23\3 C:\Files\23\4 C:\Files\24\1 C:\Files\24\2 C:\Files\24\3 我现在需要做的是检查数据库中是否存在这些文件。数据

我有一个应用程序,基本上在服务器上存储文件,并在数据库中记录详细信息。另一个应用每天运行以查找“孤立”文件。保存详细信息的表格有两列(与此相关)
TransId
SurvId
。这些文件保存在一个文件夹结构中,其中许多
SurvId
TransId
中计数:

C:\Files\23\1
C:\Files\23\2
C:\Files\23\3
C:\Files\23\4
C:\Files\24\1
C:\Files\24\2
C:\Files\24\3
我现在需要做的是检查数据库中是否存在这些文件。数据访问是通过WCF web服务进行的,该服务使用EF查询数据库

因此,我可以看到的第一个选项是调用web服务并返回一个列表或唯一记录
TransId,SurvId
,循环遍历文件夹并使用列表上的Linq检查它们是否存在

第二个选项是循环遍历文件夹并单独调用web服务以检查是否存在

在系统没有用户负载的情况下,此进程在夜间运行。选项1表示对web服务的一次调用,但可能返回一个包含200K条或更多条记录的列表。第二个返回一个布尔值,但这意味着Web服务可以被调用20万次(或更多)

我想第三种选择是将两者分开,并为每个
TransId
调用web服务

无论如何,我在尝试每种方法的过程中,但在选项1上遇到了这个问题

web服务中的我的方法:

    public List<MyFolderCheck> GetTransSurvids()
    {
        List<MyFolderCheck> response = new List<MyFolderCheck>();

            var DbContext = new MyDataStorageEntities();

            var dataset =
            (from recordset in DbContext.MySurvs

             select new MyFolderCheck
             {
                 transId = recordset.TransactionId,
                 survId = recordset.SurvId
             }).ToList();

            response = dataset;

        return response;
    }
public List GetTransSurvids()
{
列表响应=新列表();
var DbContext=新的MyDataStorageEntities();
变量数据集=
(来自DbContext.MySurvs中的记录集)
选择新建MyFolderCheck
{
transId=recordset.TransactionId,
survId=recordset.survId
}).ToList();
响应=数据集;
返回响应;
}
调用this返回列表中正确数量的元素,但我只能看到
TransId

返回列表中正确数量的元素,但我只能看到TransId


看起来您忘记在
MyFolderCheck
中用
[DataMember]
属性装饰
survId
。服务器上的数据应该是正确的,但如果只有
transId
上有
[DataMember]
,您会在接收端看到空的
survId

表中有
survId
数据吗?您是否有MySurv实体的正确映射?@SergeyBerezovskiy是TransId和SurvId在架构中都不为null。如果选择SSMS中的所有记录,则会填充两列。