【发布时间】:2017-10-13 07:56:33
【问题描述】:
我正在开发一个使用 Subsonic 3 访问数据库的 MVC 3 应用程序。
我的问题是,我不明白为什么没有将枚举“GlobalType”写入属性。 每次我检查时,值都是 0 而不是“一”。
“Name”属性包含“DateCreated”值。
“DateCreated”属性包含一个新的 DateTime 实例。
据我所知,没有其他领域正在这样做。 ViewItemModel 内部没有逻辑,它只是一个具有属性的类。
如果我在此方法之后手动添加它们,一切正常。 也许有人遇到过与亚音速类似的事情(如果它本身就是亚音速,也许我犯了一个错误)?
我在后端有这个方法:
public IEnumerable<ViewItemModel> LoadView(int registratorId)
{
var itemModel = from item in _itemQuery
join header in _headerQuery on item.HeaderID equals header.ID
where header.RegistratorID == registratorId && !(from hidden in _headerHiddenQuery where hidden.ItemID == item.ID && hidden.Type == GlobalType.One && hidden.RegistratorID == registratorId select hidden.ID).Any()
orderby item.ID descending
select new ViewItemModel()
{
Type = GlobalType.One,
ID = item.ID,
Name = header.Name,
DateCreated = header.DateCreated,
TypeOfTransport = header.TypeOfTransport,
TransportType = item.TransportType,
Count = (from subItems in _subItemQuery where subItems.ItemID == item.ID select subItems.ID).Count(),
// For Status
IsArchived = header.IsArchived,
IsCanceled = header.IsCanceled,
Process = header.Process,
End = header.End,
IsPublished = header.IsPublished,
OpenFrom = header.OpenFrom,
OpenTill = header.OpenTill,
IsNextStarted = header.IsNextStarted
};
return itemModel.ToList();
}
更新:
GlobalType 枚举如下所示
public enum GlobalType
{
One = 1,
Two = 2,
Individual = 3
}
如果我手动添加它们,我会为此更改返回语句:
var result = itemModel.ToList();
foreach (var item in result)
{
var headerId = _itemQuery.Where(it => it.ID == item.ID).Select(it => it.HeaderID).FirstOrDefault();
var created = _itemQuery.Where(it => it.ID == item.ID).Select(it => it.DateCreated).FirstOrDefault();
var name = _headerQuery.Where(it => it.ID == headerId).Select(it => it.Name).FirstOrDefault();
item.AnnouncementType = GlobalType.One;
item.Name = name;
item.DateCreated = created;
}
return result;
【问题讨论】:
-
你的
GlobalType枚举是什么样的?当您手动添加它们时,您到底在做什么? -
我用更多信息更新了问题。
-
可能是延迟执行;在您的手动示例中,尝试删除
foreach,然后检查 return 语句中的result变量。 -
可能是延迟执行。如果我删除 foreach 语句,则结果如问题中所述。属性未设置正确的值。看起来您发布的链接是同样的问题。我要么必须尝试找出亚音速的错误,要么必须解决它。也许发表您的评论作为答案,我可以接受吗?