簡體   English   中英

C#EF向客戶表添加記錄,其中包含Zip表的外鍵

[英]C# EF Adding Record to Customer Table which contains foreign key to Zip Table

我是實體框架的新手,並開始使用數據庫優先方法開發第一個應用程序,我已經在ZipTable中添加了所有記錄,現在在從.csv文件中讀取數據后,很難在CustomerTable中添加記錄。

CustomerTable( 電話[PK],名字,姓氏,地址,郵政編碼[FK]
ZipTable( Zip [PK],City,County

//Class Automatically Generated by EF 

public partial class dbzipcode
{
public dbzipcode()
{
    this.dbcustomers = new HashSet<dbcustomer>();
}

    public string ZIP { get; set; }
    public string CITY { get; set; }
    public string COUNTY { get; set; }

    public virtual ICollection<dbcustomer> dbcustomers { get; set; }
}

public partial class dbcustomer
{
    public string PHONE { get; set; }
    public string FIRSTNAME { get; set; }
    public string LASTNAME { get; set; }
    public string ADDRESS { get; set; }

    public string ZIP { get; set; }
    public virtual dbzipcode dbzipcode { get; set; }
}

我已經在ZipCodes的DB中擁有數據了。現在,當我嘗試在CustomerTable中添加數據時,我遇到了Forignkey錯誤,如果要在Secondry表中存在相應的Zip,我希望在Customer zip中插入,否則應該拋出異常。

為此,我首先要在插入每個記錄之前從csv中讀取Zip數據。 我認為這不是正確的方法,有人可以指出正確的方向嗎?

                    dbcustomer customer = new dbcustomer();
                    customer.PHONE = splits[columnIndexPhoneNumber];
                    customer.FIRSTNAME = splits[columnIndexFirstName];
                    customer.LASTNAME = splits[columnIndexLastName];
                    customer.ADDRESS = splits[columnIndexAddress];
                    customer.ZIP = splits[columnIndexZipCode];

                    //dbzipcode z = new dbzipcode() { ZIP=customer.ZIP};

                    dbzipcode z = ZipCodeDbHandler.GetInstance().GetZipCodeFromDb(splits[columnIndexZipCode]);
                    customer.dbzipcode = z;

您有客戶表和郵編表,

我要記錄新客戶的郵政編碼表中未找到郵政編碼,因此您可以設置常規郵政編碼或不設置郵政編碼,或者可以在完成記錄之前添加新的郵政編碼,這沒錯,這是正確的方法(如果郵政編碼表中有完整的郵政編碼並且客戶不能不在此范圍內,則是錯誤的,因此選項:在客戶表中記錄,如果郵政編碼中沒有記錄郵政編碼,則進行異常並要求確認記錄郵政編碼,或警告必須輸入有效的郵政編碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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