Я пытаюсь создать простой ASP. NET MVC сайт, но столкнулся с некоторой проблемой. Я не могу добавить новую запись с целочисленным значением в базу данных с помощью команды linq. У меня есть таблица под названием «группы» в базе данных. Это следующее: groups ([int] [primary key] MaNhom, [char (100)] TenNhom). Объясните: MaNhom - это GroupID, TenNhom - это GroupName. (Извините за это удобство, когда я называю эти поля вьетнамцами.). Я добавляю ADO. NET Entity Data Model и генерируется класс с именем 'group.cs'.
public partial class group
{
[Key]
public int MaNhom { get; set; }
public string TenNhom { get; set; }
}
}
Я также создаю класс в папке Models моего веб-проекта под названием Group.
public class Group
{
[Key]
public int MaNhom { get; set; }
public string TenNhom { get; set; }
}
Я создал представление под названием CreateManageGroup.cs html. Его содержание следующее:
@{
ViewBag.Title = "CreateManageGroup";
}
<h2>Create A Group</h2>
<form action="/account/CreateManageGroup" method="post">
<label for="TenNhom"> Name of Group </label>
<input type="text" name="TenNhom" id="inputGroupName">
<input type="submit" value="Create">
</form>
Когда я отправляю его, значение TenNhom будет отправлено и сохранено в параметре 'group' метода CreateManageGroup (Group group) в AccountController.
[HttpPost]
public ActionResult CreateManageGroup(Group group)
{
if (ModelState.IsValid == true)
{
var newGroup = new DataAccess.group();
newGroup.TenNhom = group.TenNhom;
var randomObject = new Random();
do
{
newGroup.MaNhom = randomObject.Next(1, 9999);
}
while (DataAccess.Queries.CheckExistInGroup(newGroup.MaNhom) == true);
DataAccess.Queries.ExcuteInsertIntoGroup(newGroup);
return RedirectToAction("SignUp");
}
else
{
return View();
}
}
Я проверил, и я знаю, что newGroup.MaNhom задает значение, отличное от нуля после рандомизации, например 3309. Но после вызова метода ExcuteInsertIntoGroup (newGroup) значение MaNhom групп таблиц в базе данных равно 0. Содержимое ExcuteInsertIntoGroup ():
namespace DataAccess
{
public class Queries
{
public static void ExcuteInsertIntoGroup(group record)
{
phep_toanDatabase.groups.Add(record);
phep_toanDatabase.SaveChanges();
}
}
}
Примечание. Phep_toanDatabase - это переменная, объявленная в классе. Запросы к библиотеке классов DataAccess:
public static phep_toanEntities phep_toanDatabase;
static DataAccess()
{
phep_toanDatabase = new phep_toanEntities();
}
Мой вопрос: почему после исключения команды linq значение MaNhom отображается в группах таблиц как 0, хотя newGroup.MaNhom имеет значение, отличное от 0 до? Спасибо!