仍然是ASP.NET的新手。我有两个模型和两个API控制器。我希望我可以在我的EFRepository中为两个控制器创建所有方法,但它似乎只允许我使用我构建的第一个模型中的对象。我的问题是,我是否只是为第二个模型/ API创建另一个存储库?或者最好的做法是为我的方法创建一个通用的服务器端服务?或者在我的思考过程中还有什么我想念的东西?谢谢!
记录模型
namespace Train.Models {
public class Record {
public int Id { get; set; }
public int Quantity { get; set; }
public DateTime DateCreated { get; set; }
public bool IsActive { get; set; }
public ApplicationUser User { get; set; }
public virtual ICollection<Cars> Cars { get; set; }
}
}
汽车模型
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; }
public string UserId { get; set; }
public string RecordId { get; set; }
public virtual Record Record { get; set; }
}
}
API CarsController方法
public IHttpActionResult Post(Cars car) {
car.UserId = User.Identity.GetUserId();
if (!ModelState.IsValid) {
return BadRequest(this.ModelState);
}
_repo.SaveCar(car);
return Created("", car);
}
API Recordcontroler方法
public IHttpActionResult PostRecord(Record record) {
var UserId = this.User.Identity.GetUserId();
if (!ModelState.IsValid) {
return BadRequest(this.ModelState);
}
_repo.SaveRecord(record);
return Created("", record);
}
在EFRepository中保存Car方法
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();
}