В моем приложении ASP.NET Web forms
у меня есть Model
, у которого ID
имеет тип IDENTITY типа int. В моем Insert
, после сохранения элемента, я создаю каталог этого itemId & хочу сохранить изображения в нем & Обновить изображение Пути того же в Item. Об обновлении свойств элемента & пытается спасти, он дает мне ошибку: -Обновление нескольких свойств модели после внесения в базу данных
The property 'ChannelId' is part of the object's key information and cannot be modified.
Мои вставки Методы:
public void InsertItem()
{
Channel item = null;
item = new Channel();
TryUpdateModel(item);
if (ModelState.IsValid)
{
// Save changes
// After this line only I can get the ID created by DB
_db.SaveChanges();
_db.Channels.Add(item);
System.Diagnostics.Debug.WriteLine("### EF ID OF Newly Created CHANNEL = " + item.ChannelId);
// Create Folder for the Channel based on its ID
string pathToCreate = "~/CRMImages/Channels/" + item.ChannelId;
string myFileName = "";
if (!Directory.Exists(Server.MapPath(pathToCreate)))
{
DirectoryInfo di = Directory.CreateDirectory(Server.MapPath(pathToCreate));
var user = System.Security.Principal.WindowsIdentity.GetCurrent().User;
var userName = user.Translate(typeof(System.Security.Principal.NTAccount));
System.Security.AccessControl.DirectorySecurity sec = di.GetAccessControl();
sec.AddAccessRule(new System.Security.AccessControl.FileSystemAccessRule(userName,
System.Security.AccessControl.FileSystemRights.Modify,
System.Security.AccessControl.AccessControlType.Allow));
di.SetAccessControl(sec);
System.Diagnostics.Debug.WriteLine("CHannel FOLDER CREATED PATH : " + di.FullName);
myFileName = pathToCreate + "/pancardImg.png";
System.Diagnostics.Debug.WriteLine("PATH To Save PAN File & NAME : " + myFileName);
// PAN CARD IMAGE
FileUpload panInsertUpload = InsertChannelId.FindControl("panInsertUpload") as FileUpload;
if (panInsertUpload != null)
{
if (panInsertUpload.HasFile)
{
System.Diagnostics.Debug.WriteLine("EDIT UNIT PLAN FILE NAME =" + panInsertUpload.FileName);
myFileName = pathToCreate + "/pancardImg.png";
panInsertUpload.SaveAs(Server.MapPath(myFileName));
item.PanImageURL = myFileName;
}
}
TryUpdateModel(item);
// HERE I GET THE ERROR. HOW TO UPDATE THAT ITEM IN DB
_db.SaveChanges();
}
Response.Redirect("Default");
}
}
каталог создается, файл сохраняется все собственно, только как обновить свойства в БД. После создания dir & сохранение только файла. Я могу получить путь к файлу для сохранения.
Любая помощь очень ценится. Спасибо.
Что с помощью TryUpdateModel для? –
Да, Правеен, я пробовал, и это сработало. Можете ли вы добавить свой ответ, чтобы я мог отметить его как «Ответ». Благодарю. – Tvd
Добавлен ответ на этот счет. –