0

我将某些内容存储在存储库中,并且需要在调用之前检索该值SaveChanges。结果是null,但在调试器中我可以看到存储库包含本地值。

var tenant = TenantRepository.Create(model.TenantName);

// a bit further in the stacktrace I retrieve the entity

var tenant = TenantRepository.GetTenantByName(tenantName);
// now tenant is null.

中的相关方法TenantRepository

Create方法:

    public Tenant Create(string tenantName)
    {
        var tenant = new Tenant
            {
                Name = tenantName,
                Guid = Guid.NewGuid().ToString()
            };

        if (Exists(tenant.Name))
        {
            throw new TenantAlreadyExistsException(tenant.Name);
        }

        _repository.Add(tenant);

        return tenant;
    }

GetTenantByName方法:

    public Tenant GetTenantByName(string name)
    {
        if (string.IsNullOrEmpty(name))
        {
            throw new ArgumentException("name");
        }

        var foundTenant = GetTenants().SingleOrDefault(tenant => name.Equals(tenant.Name));

        return foundTenant;
    }

    private IQueryable<Tenant> GetTenants()
    {
        return _repository.GetAll().Include(tenant => tenant.Users);
    }

正如您在这张图片中看到的,TenantRepository.

为什么我无法找回它?我是否忽略了明显的错误?

提前谢谢了!

在此处输入图像描述

4

1 回答 1

1

可能 GetAll() 方法不包括 AdditionalState 中的实体。对象上下文中新添加的租户实体的状态将为“AddedState”

于 2013-02-25T13:25:44.523 回答