我有一個程序,它接收一個文件,執行一些數據處理,然後將結果與數據庫中的結果進行比較。比較兩個複雜對象,一個來自數據庫,另一個來自輸入
對象
public class ReleaseDates
{
public int Id { get; set; }
public string MovieName { get; set; }
public string Country { get; set; }
public DateTime ReleaseDate { get; set; }
public string AlternateSource { get; set; }
}
這是非常有可能的是,MovieName
將是相同的是什麼數據庫,但ReleaseDate
可能會改變。
如何將我從數據庫中抓取的內容與ReleaseDate
對象列表進行比較?
例
public bool Compare(ReleaseDates original, ReleaseDates newObj)
{
if (original.AlternateSource != newDate.AlternateSource)
{
return false;
}
if (original.Country != newDate.Country)
{
return false;
}
if (original.MovieName != newDate.MovieName)
{
return false;
}
if (original.ReleaseDate != newDate.ReleaseDate)
{
return false;
}
return true;
}
如何我從數據庫中獲取數據:
public List<ReleaseDates> GetAllReleaseDates()
{
return Db.ReleaseDates.ToList(); // Db is my DataContext
}
上面的例子來比較的ReleaseDates
一個實例,但我怎麼能比較一清單?我不能訂購清單,因爲會有重複的MovieName
,但不同的ReleaseDate
和AlternateSource
。
更新 對不起,我問了錯誤的問題。
我想要做的是將數據庫列表與新列表進行比較,如果它們不同,請將其從數據庫中刪除並插入新項目。
E.g.
public void Example(ReleaseDates A, ReleaseDates B)
{
if(A.MovieName != B.MovieName) // But need to compare all properties
{
Db.ReleaseDates.Remove(A);
Db.ReleaseDates.Add(B);
Db.SaveChanges();
}
}
顯示從db獲取數據的代碼 – dotctor
@dotctor updated –
我建議您將方法重命名爲Equals。比較通常會返回一個int值並用於排序。例如參見文檔String.Compare。 比較兩個列表取決於您的需求。項目的順序是否重要? –