2010-10-14 129 views
0

是否有人知道我在.dbml文件中進行了一些自定義更改後如何才能更新數據模型類。如何在手動更改.dbml文件後更新數據模型類

我試圖手動標記.dbml中的某些字段可以爲空,但無論代碼重建多少次,代碼中都看不到變化。我甚至試圖在外部工具中編輯.dbml(xml),然後保存,但沒用。

編輯< < 下面是shaunmartin的片段......

<Table Name="dbo.Clients_Banks" Member="Clients_Banks"> 
<Type Name="Clients_Banks"> 
    <Column Name="ID" Type="System.Int32" DbType="Int NOT NULL IDENTITY" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" /> 
    <Column Name="FKClients" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" /> 
    <Column Name="BankName" Type="System.String" DbType="NVarChar(100) NOT NULL" CanBeNull="false" /> 
    <Column Name="BankAccountNo" Type="System.String" DbType="NVarChar(50) NOT NULL" CanBeNull="false" /> 
    <Column Name="Party" Type="System.String" DbType="NVarChar(50)" CanBeNull="true" /> 
    <Column Name="ClientAccountNo" Type="System.String" DbType="NVarChar(50) NOT NULL" CanBeNull="false" /> 
    <Column Name="Active" Type="System.Boolean" DbType="Bit NOT NULL" CanBeNull="false" /> 
    <Column Name="NonResidentialAccount" Type="System.Boolean" CanBeNull="false" /> 
    <Column Name="Swift" Type="System.String" CanBeNull="true" /> 
    <Column Name="Iban" Type="System.String" CanBeNull="true" /> 
    <Association Name="Clients_Clients_Banks" Member="Clients" ThisKey="FKClients" OtherKey="ID" Type="Clients" IsForeignKey="true" /> 
</Type> 

我從假爲真,只是改變了CanBeNull財產最後兩成員(Iban和Swift)。沒什麼大不了的,但我需要這樣做。

+0

您能否包含您修改的dbml XML代碼片段? – shaunmartin 2010-10-14 22:26:49

+0

我不得不將代碼片段放到原始問題文本中,因爲它不適合評論的字符數限制 – Eedoh 2010-10-15 10:30:34

+0

對不起,我也應該要求提供生成代碼片段 - 就像Swift屬性的前幾行一樣和伊班。無論如何,我會繼續提供答案,如果您願意,我們可以繼續在那裏討論。 – shaunmartin 2010-10-16 04:44:33

回答

0

好吧,我假設你已經在Visual Studio的屬性窗口中設置可空當你在實體設計的雨燕或伊班字段中選擇,然後您保存再生.Designer.cs文件。如果是這樣的(這聽起來像你這樣做......),這是你應該看到:

可空設置爲

<Column Member="Swift" Storage="_Swift" Type="System.String" CanBeNull="true" UpdateCheck="Always" /> 

應該產生這樣的:

[Column(Storage="_Swift")] 
public string Swift 
{ 
... 

可空設置爲

<Column Member="Swift" Storage="_Swift" Type="System.String" CanBeNull="false" UpdateCheck="Always" /> 

應該產生這樣的:

[Column(Storage="_Swift", CanBeNull=false)] 
public string Swift 
{ 
... 

因此,大家可以看到,字符串是默認爲空的,所以沒有必要在列屬性CanBeNull屬性時可空設置爲True。無論如何,如果上述內容沒有提供更多的線索,那麼您可能需要提供生成的代碼片段(正如我在您的問題的評論中提到的那樣)。希望這可以幫助。

相關問題