1
我有一個dropdownlistfor
,其值不是來自我的數據庫,當用戶選擇我的數據庫中不存在的值時,我想將它保存到數據庫(和如果它已經存在,我只是使用現有的數據)。在MVC中使用EF中的SaveChanges時出現奇怪的錯誤信息
這項工作細跟我的一些數據(見它不工作代碼)的
這是我的倉庫:
public void newPerson(Person addperson)
{
db.Person.AddObject(addperson);
db.SaveChanges(); //This wont work
}
這裏是我的控制器:
[HttpPost]
public ActionResult Create(CreateNKIphase1ViewModel model)
{
if (ModelState.IsValid)
{
var goalcard = new GoalCard();
var companyChecker = "";
var dbCompanies = createNKIRep.GetCustomerByName();
var addcustomer = new Customer();
foreach (var existingcustomer in dbCompanies)
{
companyChecker = existingcustomer.CompanyName;
if (existingcustomer.CompanyName == model.CompanyName)
{
var customerId = existingcustomer.Id;
var selectedCustomerID = createNKIRep.GetByCustomerID(customerId);
goalcard.Customer = selectedCustomerID;
break;
}
}
if (companyChecker != model.CompanyName)
{
addcustomer.CompanyName = model.CompanyName;
createNKIRep.newCustomer(addcustomer); //This works!
goalcard.Customer = addcustomer;
}
if (model.PersonName != null)
{
var Personchecker = "";
var dbPersons = createNKIRep.GetPersonsByName();
foreach (var existingPerson in dbPersons)
{
Personchecker = existingPerson.Name;
if (existingPerson.Name == model.PersonName)
{
var personId = existingPerson.Id;
var selectedPersonID = createNKIRep.GetByPersonID(personId);
goalcard.Person = selectedPersonID;
break;
}
}
if (Personchecker != model.PersonName)
{
Person newPerson = new Person();
newPerson.Name = model.PersonName;
createNKIRep.newPerson(newPerson);//Where repository is called
goalcard.Person = newPerson;
}
}
但是,當我嘗試保存新的Person
時,出現以下錯誤消息:
將datetime2數據類型轉換爲日期時間數據類型導致超出範圍值。 該聲明已被終止。
描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。
即使Person
只有Id
和name
在我的數據庫屬性。
在我的代碼中是否有任何錯誤,或者它是否需要更改我的數據庫中的任何設置?
在此先感謝。
聽起來像是與你的Db對我做的事情。你的Person表是什麼結構?它不包含任何日期時間字段?任何foriegn鍵或觸發器? – Liam
它具有導航屬性到'Goalcard'。只有屬性「ID」和「名稱」。 –