1

我有一种感觉,答案将是非常简单的,但由于某种原因,我一直遇到心理障碍。我正在处理一个项目,该项目使用 MVVM 模式,其中包括实体框架并实现了存储库。我创建了一个 DTO,它只包含 3 个属性,代表我拥有的某个实体中的字段。DTO 被命名ParticularGroupDto并且看起来超级简单:

public class ParticularGroupDto : BasicModelBase
{
    private string _groupName;
    private Guid _groupId;
    private Guid? _managerUserId;


    public string GroupName
    {
        get { return _groupName; }
        set { SetValueAndNotify(() => GroupName, ref _groupName, value); }
    }

    [Key]
    public Guid GroupId
    {
        get { return _groupId; }
        set { SetValueAndNotify(() => GroupId, ref _groupId, value); }
    }
    public Guid? ManagerUserId
    {
        get { return _managerUserId; }
        set { SetValueAndNotify(() => ManagerUserId, ref _managerUserId, value); }
    }
}

在我的Repository.Group文件中,我有一个方法:

public ParticularGroupDto GetParticularGroup(Guid id)
{
    var manager = DevForce.CreatePrimeEntities();
    IEntityQuery<ParticularGroupDto> query = from k in manager.Groups
                                               where k.GroupId == id
                                               select new ParticularGroupDto
                                               {
                                                   GroupName = k.GroupName,
                                                   GroupId = k.GroupId,
                                                   ManagerUserId = k.ManagerUserId
                                               };

    IEnumerable<ParticularGroupDto> list = query.Execute();
    ParticularGroupDto firstParticularGroupDto = query.FirstOrDefault();
    return firstParticularGroupDto;
}

我想简单地执行我得到的这个查询但是当它命中时query.Execute();我得到Exception has been thrown by the target of an invocation.

关于这里的问题有什么想法吗?非常感谢您看一看!

UPDATE 我还需要提一下,这里传递“id”参数的方法如下:

 ParticularGroup = Repository.GetParticularGroup(CurrentEntity.GroupId);

它只是简单地为已加载的 CurrentEntity 获取一个类似于 GroupId 的 guid(在本例中,它是来自 Group 实体的 GroupId)。我确实通过调试它来验证它是否被正确传递。

4

0 回答 0