簡體   English   中英

兩個相同表的LINQ TO SQL映射

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM