Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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
Asp.net mvc 基于guid值搜索表_Asp.net Mvc_Linq_Asp.net Mvc 4_Datatable_Guid - Fatal编程技术网

Asp.net mvc 基于guid值搜索表

Asp.net mvc 基于guid值搜索表,asp.net-mvc,linq,asp.net-mvc-4,datatable,guid,Asp.net Mvc,Linq,Asp.net Mvc 4,Datatable,Guid,我需要根据Guid值在表中查找一行。这是我目前一直在做的事情,但不起作用。 我有以下功能 public ActionResult Details(long id) { var ownerId = _dbSis.OwnedModules.Find(id); var ownerName = _dbCore.BusinessUnits.Find(ownerId.ModuleOwnerId); var moduleV

我需要根据Guid值在表中查找一行。这是我目前一直在做的事情,但不起作用。 我有以下功能

public ActionResult Details(long id)
        {
            var ownerId = _dbSis.OwnedModules.Find(id);
            var ownerName = _dbCore.BusinessUnits.Find(ownerId.ModuleOwnerId);
            var moduleV = (_dbSis.Modules.Select(module => new ModuleDetails
                {
                    Id = id,
                    ModuleId = module.ModuleId,
                    TypeName = module.ModuleType.TypeName,
                    KindName = module.ModuleType.ModuleKind.KindName,
                    Owner = ownerName.Name,

                }));

            return View(/*moduleV.FirstOrDefault()*/);
        }
目前我在
ownerName
中获得空值,而在
ownerId
中传递值。 下面是在ownerId中传递的内容的图像

以下是
BusinessUnits
表的图像


为什么我的
\u dbCore.BusinessUnits.Find(ownerId.ModuleOwnerId)
不工作或找不到任何值?难道不能根据Guid值找到一些行吗?

我看不出有什么理由不能这样做。从未尝试过使用GuiId查找,但我看不到任何说明它无法工作的文档(请参阅)。您是否检查过BusinessUnits在代码中的该点也有项目(不仅仅是在数据库中)?嗯,这听起来可能很愚蠢,但是,我如何检查BusinessUnits在该点是否有项目。当我运行应用程序并单击行
var ownerName=\u dbCore.BusinessUnits.Find(ownerId.ModuleOwnerId)上的
BusinessUnits
我得到一个设置符号,单击+符号,右侧显示
count=0
。这是否意味着此时没有行?您可以执行.Count()并查看它是什么,或者使用IntelliSense查看它是否有计数。您还应该能够枚举集合以实际查看值。但是,如果计数为0,则不会显示任何内容。如果您将鼠标悬停在_dbCore.BusinessUnits上,它显示count=0,那么我认为您已经找到了答案。愚蠢的问题,但在大多数情况下,这些恼人的问题都有愚蠢的原因。如果您使用的是实体框架,您确定“BusinessUnits”的“Id”属性被标记为Identity吗?也许可以尝试将代码更改为类似dbCore.BusinessUnits.Single(x=>x.Id==ownerId.ModuleOwnerId)的代码,看看是否works@Botis是的,它被标记为标识。我发现属于
SISContext
类型的
\u dbis
继承自
CoreContext
。因此,不要执行
\u dbCore.BusinessUnits.Find(ownerId.ModuleOwnerId)如果我执行
var ownerName=\u dbSis.Set().Find(ownerId.ModuleOwnerId)它可以工作。不知道我是否应该把它作为答案。