手动更改.dbml文件后如何更新数据模型类

时间:2010-10-14 12:55:42

标签: c# sql visual-studio linq-to-sql

有人知道在我.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属性从false改为true,为最后两个成员(Iban和Swift)。没什么大不了的,但我需要这样做。

1 个答案:

答案 0 :(得分:0)

好的,我假设您已经在实体设计器中选择了Swift或Iban字段后,在Visual Studio的“属性”窗口中将 Nullable 设置为 True ,然后您已保存以重新生成.Designer.cs文件。如果是这样(听起来你正在这样做......),这就是你应该看到的:

将Nullable设置为 True

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

应该生成这个:

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

将Nullable设置为 False

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

应该生成这个:

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

正如您所看到的,默认情况下String是可为空的,因此当Nullable设置为True时,Column属性中不需要CanBeNull属性。

无论如何,如果以上内容没有提供更多线索,您可能需要提供生成代码的片段(正如我在您的问题评论中提到的那样)。希望这会有所帮助。