[英]Two same table's mapping LINQ TO SQL
由於某種原因,我的數據庫中有兩個表(它們的名稱不同),並且兩者完全相同。 而且,它們每個都有太多的屬性。
所以圖像我有兩個ORM模型,就像這樣一個:
[Table(Name = "DataHelper")]
class MySameTable1
{
[Column(IsPrimaryKey = true)]
public int Id { get; set; }
[Column]
public string Name { get; set; }
[Column]
public string Surname { get;set; }
[Column]
public string Country { get;set; }
//etc. too much properties
}
第二個
[Table(Name = "DataSource")]
class MySameTable2
{
[Column(IsPrimaryKey = true)]
public int Id { get; set; }
[Column]
public string Name { get; set; }
[Column]
public string Surname { get;set; }
[Column]
public string Country { get;set; }
//etc. too much properties
}
因此,當我使用表進行工作時:
DataContext _DataContext = new DataContext("connectionstring");
var MySameORM_Model1 = _DataContext.GetTable<MySameTable1>();
var MySameORM_Model2 = _DataContext.GetTable<MySameTable2>();
發生主要問題時,當我需要通過表MySameTable1中包含的數據填充第二個表( MySameORM_Model2 )時(有時不是直接插入,有時不是)
因此,為了不從MySameTable1中獲取所有條目,我嘗試了以下步驟:
1.Abstract類,包含所有屬性:
public abstract class BaseSameTable
{
[Column(IsPrimaryKey = true)]
public int Id { get; set; }
[Column]
public string Name { get; set; }
[Column]
public string Surname { get;set; }
[Column]
public string Country { get;set; }
//etc. too much properties
}
//inheritance
[Table(Name = "DataHelper")]
class MySameTable1 : BaseSameTable
{ }
//same
[Table(Name = "DataSource")]
class MySameTable2 : BaseSameTable
{ }
而且它不起作用, 層次結構提交時出現了奇怪的異常
此后,我將抽象類更改為接口抽象,但是很遺憾,它並沒有成功。
public interface IBaseEntity
{
int Id { get; set; }
string Name { get; set; }
string Surname { get;set; }
string Country { get;set; }
//etc. too much properties
}
[Table(Name = "DataHelper")]
class MySameTable1 : IBaseEntity
{
[Column(IsPrimaryKey = true)]
public int Id { get; set; }
[Column]
public string Name { get; set; }
[Column]
public string Surname { get;set; }
[Column]
public string Country { get;set; }
//etc. too much properties
}
[Table(Name = "DataSource")]
class MySameTable2 : IBaseEntity
{
[Column(IsPrimaryKey = true)]
public int Id { get; set; }
[Column]
public string Name { get; set; }
[Column]
public string Surname { get;set; }
[Column]
public string Country { get;set; }
//etc. too much properties
}
那么,什么是適合我的情況的正確方法 ,我該怎么做才能實現自己的目標? 也許它需要其他映射,但是Google並沒有幫助我。
如果您的數據從一個表轉移到另一表,為什么要讓您的主機參與其中? 等待存儲過程來處理它,因此數據永遠不必離開數據服務器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.