0
User
------
UserId PK
Access
-------
AccessId PK
UserId FK to User.UserId
用戶實體
public int Id { get; set; }
public virtual Access Access { get; set; }
訪問實體
public int Id { get; set; }
public int UserId { get; set; }
public virtual User User { get; set; }
訪問映射
...
HasKey(t => t.Id);
Property(t => t.Id).HasColumnName("AccessId");
HasRequired(t => t.User).WithOptional(t => t.Access);
...
用戶映射
...
HasKey(t => t.Id);
Property(t => t.Id).HasColumnName("UserId");
...
查詢
var access = _unitOfWork.Users.Get()
.Where(u => u.Id == userId)
.Select(u => u.Access)
.FirstOrDefault();
生成的SQL
LEFT OUTER JOIN [dbo].[Access] AS [Extent2]
ON [Extent1].[UserId] = [Extent2].[AccessId] <-- ** PROBLEM IS HERE **
我的查詢嘗試加入錯誤的列,儘管我在數據庫中設置了PK/FK,並在我的實體映射中指定了PK。任何人都可以發現我錯過的東西嗎?謝謝。
非常感謝你,我真的被困在這。 – fearofawhackplanet