У меня есть форма, в которой пользователи будут вводить данные своего трейдера. При сохранении я также хочу сохранить текущего пользователя в таблице. У меня есть отношения «один ко многим», построенные в моих моделях, но не могу заставить пользователя использовать мой метод сохранения. Я попытался использовать ApplicationUser несколькими способами, но не могу заставить его правильно опубликовать. Вот мой текущий метод сохранения:Как сохранить текущего пользователя в другой таблице при сохранении объектов?
public void SaveCar(Cars carToSave) {
if (carToSave.Id == 0) {
_db.Cars.Add(carToSave);
_db.SaveChanges();
} else {
var original = this.Find(carToSave.Id);
original.EmptyOrLoaded = carToSave.EmptyOrLoaded;
original.CarType = carToSave.CarType;
original.ShippedBy = carToSave.ShippedBy;
original.RailcarNumber = carToSave.RailcarNumber;
_db.SaveChanges();
}
}
И моя модель класса:
namespace Train.Models {
public class Cars {
public int Id { get; set; }
public string EmptyOrLoaded { get; set; }
public string CarType { get; set; }
//Hopper, flatbed, tank, gondola, etc.
public string ShippedBy { get; set; }
//UP(Union Pacific) or BNSF
public string RailcarNumber { get; set; }
public virtual ApplicationUser ApplicationUser { get; set; }
}
И IdentityModels.cs
public class ApplicationUser : IdentityUser {
[StringLength(250, ErrorMessage = "About is limited to 250 characters in length.")]
public string Company { get; set; }
public virtual ICollection<Cars> Cargroup { get; set; }
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager, string authenticationType) {
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, authenticationType);
// Add custom user claims here
return userIdentity;
}
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser> {
public IDbSet<Cars> Cars { get; set; }
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false) {
}
public static ApplicationDbContext Create() {
return new ApplicationDbContext();
}
}
}
Ваша модель класса, пожалуйста? –
отредактированный оригинал для добавления модели – ScottVMeyers
Спасибо. И ваш пользовательский класс? Если вы хотите публиковать данные пользователя через Car, Пользователь должен быть свойством класса модели автомобиля. –