2015-05-07 26 views
1

我有一個MVC應用程序,它使用LINQ到SQL。我只是從數據庫中導入了一個函數到我的dbml文件。我還添加了一個我想用作此函數的返回類型的類。然而,當我查看返回類型的下拉列表(在設計器中)時,我的新類不在(但其他各種類)。爲了確保,我關閉並重新打開了dbml文件並重新啓動了VS,但仍然無法看到我的新類可用作返回類型的選項。不能設置返回類型的SQL功能到我的班級

是什麼導致了行爲,以及如何讓函數在C#結束時返回正確的類型?

請注意,我的新類在一個單獨的cs文件中,但放置在與dbml文件相同的項目和名稱空間中。

+0

您是否嘗試先編譯該項目? –

+0

@RonBeyer我做到了。我甚至重建它,以便採取更好的措施(然後是整個解決方案),但是我的新班級沒有出現。我也確定我宣佈這個課程是公開的。我也嘗試將所有屬性更改爲可空,並將類移動到dbml文件的cs中,但都沒有任何區別。 – jahu

+0

你可以發佈你想使用的功能和類嗎? –

回答

1

我想我已經想通了。爲了能夠使用類作爲sql函數的返回類型,該類必須直接添加到dbml文件中(可能它與映射有關)。如果該類在別處聲明(即使它是dbml文件的cs文件),它將不起作用。

所以最後我不得不將我的類移到dbml文件中(在設計器中重新創建它)。


此外linq到sql是相當挑剔的函數返回的列類型。我通過查看自動生成的返回類中的類型克服了這一點。那麼爲什麼不用自動生成的課程,你可能會問?我有3個sql函數需要返回相同的輸出類型,所以自動生成的類型並不好。