none
修改資料庫TABLE內容時,LINQ有點問題 RRS feed

  • 問題

  • 平台:XP
    環境:VS 2008 PRO, SQL20005 PRO
    之前有個專案使用LINQ去連資料庫
    最近要添加欄位,我用SQL先在TABLE直接加欄位
    欄後開啟專案後,在*.DA.LINQ裡面的DBlinq.dbml中
    先把修改的TABLE拉掉,再把修改完成的TABLE加進去
    雖然在DBlinq.dbml中下面的子檔案都有看到宣告
    可是在編輯*.aspx.cs中,使用物件按下 "." 時,顯示出來的物件卻沒有我宣告的欄位
    是我少做了什麼,還是我這樣建置是不對的
    2009年10月16日 上午 05:04

解答

  • 我不知道你的元件有沒有切割.
    我在做會將這個企業物件建到另一個專案.
    你在做時不僅要在dbml出現該圖型,還要做Build的動作.
    在使用時才會顯示新的欄位.
    • 已標示為解答 jcyang95 2009年10月16日 上午 09:25
    2009年10月16日 上午 05:23
  • 所以說,你有二個專案對吧?
    檢查看看「主程式專案」是參考「linq專案」,還是參考「linq專案」產生的dll

    http://msdn.microsoft.com/zh-tw/library/ez524kew(VS.80).aspx
    裡面有提到
    專案對專案之參考的好處就在,它是在組建系統的專案之間建立相依性,因此,如果上一次建置參考專案之後檔案有所變更,那麼相依專案將再行建置
    • 已標示為解答 jcyang95 2009年10月16日 上午 09:24
    2009年10月16日 上午 09:06

所有回覆

  • 我不知道你的元件有沒有切割.
    我在做會將這個企業物件建到另一個專案.
    你在做時不僅要在dbml出現該圖型,還要做Build的動作.
    在使用時才會顯示新的欄位.
    • 已標示為解答 jcyang95 2009年10月16日 上午 09:25
    2009年10月16日 上午 05:23
  • 這個專案之前學長做的時候是有切割出另外一個專案
    是使用using在主要專案來使用LINQ的DOMAIN
    因為不熟,我是想說依照我上面所說的先刪掉,然後從資料庫總管那邊拉過來
    關聯性雖然是顯示是沒有問題,而且在designer.cs裡面也是有出現的
    但是在主要專案宣告物件後卻找不到此屬性可以用
    例如我加了一個 temp的欄位
    照理說我在物件名稱後面按下"."以後會有個temp的屬性可以選擇
    可是卻沒有出現,你說的建置,是點選.LINQ專案後,選擇功能列那邊的 建置->建置 *.LINQ   這樣嗎?!


    只用的話會出現以下這樣的訊息:
    錯誤    1    'TCW.DA.LINQ.CASE_PROFILE' 不包含 'CASE_TEMP_STATE' 的定義,也找不到擴充方法 'CASE_TEMP_STATE' 來接受型別'TCW.DA.LINQ.CASE_PROFILE' 的第一個引數 (您是否遺漏 using 指示詞或組件參考?) 

    2009年10月16日 上午 08:48
  • 所以說,你有二個專案對吧?
    檢查看看「主程式專案」是參考「linq專案」,還是參考「linq專案」產生的dll

    http://msdn.microsoft.com/zh-tw/library/ez524kew(VS.80).aspx
    裡面有提到
    專案對專案之參考的好處就在,它是在組建系統的專案之間建立相依性,因此,如果上一次建置參考專案之後檔案有所變更,那麼相依專案將再行建置
    • 已標示為解答 jcyang95 2009年10月16日 上午 09:24
    2009年10月16日 上午 09:06
  • 謝謝兩位先進的回答,最後解法是先把參考裡面的dll檔砍掉以後,專案會自動加入參考,重新build之後即可以
    2009年10月16日 上午 09:26