[英]How to Update Two Tables using LINQ in ASP.NET MVC 4 Web Applications
我正在制作“圖書館管理系統”項目,其中有一個“ Deposit
控制器”,用於存放較早發行的書籍。 使用兩個表:
BooksData
具有BookStatus
標志的所有書籍信息,該標志將“ A”設置為“可用”,將“ I”設置為“已發行”。 BookDepositIssue
具有BookID
,這在表和IssueDate, DepositDate, and DueDate
和IssueDate, DepositDate, and DueDate
中都是通用的。
現在在我的存款控制器中,我正在檢查BookStatus
標志是否為“ I”; 表示已發行。 還有DueDate<= DateTime
.Today,因此不會產生罰款。 但是我無法提供正確的代碼幫助。 如調試器所示,var v為空,因此不會進入if條件。 數據庫已發布標記為“ I”的書籍,那么為什么它不執行該條件?
控制器部分
[HttpPost]
public ActionResult Deposit (BookDepositIssue deposit)
{
if (ModelState.IsValid)
{
using (LibraryEntities dc = new LibraryEntities())
{
var v = dc.BooksDatas.Where(a=> a.BookStatus.Equals("I") && a.BookID.Equals(deposit.BookID) && deposit.DueDate<=DateTime.Today).FirstOrDefault();
if(v!=null)
{
v.BookStatus="A";
deposit.depositDate = DateTime.Today;
}
UpdateModel(dc.BooksDatas);
UpdateModel(dc.BookDepositIssues);
dc.SaveChanges();
}
}
}
模型零件
Model class 1:
public partial class BookDepositIssue
{
public int SequenceNo {get; set;}
public string BookID {get; set;}
public string ID {get; set;}
public Nullable<System.DateTime> IssueDate {get; set;}
public Nullable<System.DateTime> DueDate {get; set;}
public Nullable<System.DateTime> DepositDate {get; set;}
}
Model Class 2:
public partial class BooksData
{
public string BookID {get; set;}
public BookName {get; set;}
public BookGenre {get; set;}
public BookStatus {get; set;}
public Author {get; set;}
}
嘗試執行此操作-假設您在BookDepositIssue
和'BookDepositIssue'之間有一個名為bookData
的導航屬性。 如果您沒有,那應該。
替換此部分:
var v = dc.BooksDatas.Where(a=> a.BookStatus.Equals("I") && a.BookID.Equals(deposit.BookID) && deposit.DueDate<=DateTime.Today).FirstOrDefault();
if(v!=null)
{
v.BookStatus="A";
deposit.depositDate = DateTime.Today;
}
UpdateModel(dc.BooksDatas);
UpdateModel(dc.BookDepositIssues);
dc.SaveChanges();
有了這個:
if(deposit.bookData.BookStatus == "I" && deposit.DueDate<=DateTime.Today){
deposit.bookData.BookStatus = "A";
deposit.depositDate = DateTime.Today;
}
dc.SaveChanges();
讓我知道這是否對您有用。 如果沒有,請具體說明什么不起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.