MVC5アプリケーションでEntity Frameworkを使用していますが、現在、データベースの複数のテーブルにアクセスするフォームデータを保存しようとしています。私はテーブルにデータを追加するときにうまくいくように見えますが、ブリッジテーブルにヒットしたら、null ref例外が発生しています。ブリッジテーブルに追加する際のEntity Frameworkヌル参照例外
私はプログラミングに慣れていないので、どんな助けでも大歓迎です。 Department
を使用した後FirstorDefault
クエリとEntityFramework
はAppUsersのためにそれが含まれていないので、あなたが常にエラーに直面するオフあなたはLazyLoadingEnabled
とProxyCreationEnabled
を有効にした場合
public void RegisterNewUser(IDCRegisterViewModel model)
{
//
string fullAddress = model.AddressLine1 + "\n" + model.AddressLine2 + (string.IsNullOrEmpty(model.AddressLine2) ? "" : "\n") + model.City + ", " + model.State + " " + model.Zip + "\n" + model.Country;
using (var AuthContext = new InfoKeeperEntities1())
{
AuthContext.Locations.Add(new Location {
Line1 = model.AddressLine1,
Line2 = model.AddressLine2,
City = model.City,
State = model.State,
Zip = model.Zip,
Country = model.Country,
UserID = model.UserID,
FullAddr = fullAddress
});
AuthContext.ProfileDatas.Add(new ProfileData
{
UserID = model.UserID,
UACC = model.UACC,
isRecCenter = model.IsRecCenter,
isCustAdmin = model.IsCustAdmin
});
//Add to bridge tables for user/dept and group/dept
List<Department> deptList = new List<Department>();
foreach (var ID in model.GroupIDs)
{
deptList.Add(AuthContext.Departments.FirstOrDefault(x => x.ID == ID));
}
foreach (var department in deptList)
{
//NULL REF EXCEPTION HERE
AuthContext.AspNetUsers.FirstOrDefault(x => x.Id == model.UserID).Departments.Add(department);
foreach (var groupID in model.GroupIDs)
{
AuthContext.Groups.FirstOrDefault(x => x.ID == groupID).Departments.Add(department);
}
}
}
}
ヌルを投げされている行を示してください:
AspNetUsers
とGroups
のコンストラクタでList<Depatment>
の新しいインスタンスを作成することを忘れないでください参照例外。 – mjw更新されました。ありがとうございました。 – SentOnLine
NULL REFがある行のコードにブレークポイントを置き、ブレークポイントに達すると、この行を強調表示します。AuthContext.AspNetUsers.FirstOrDefault(x => x.Id == model.UserID)、右クリックしてクイックウォッチを選択して、このLINQ文が何かを返すかどうかを確認します。 – mjw