我已经使用 linq-to-sql 接管了一个应用程序,现在计划对数据库进行一些重大更改。由于不支持刷新 dbml 设计器中的模型,我尝试改用 sqlmetal。但是,我遇到了 sqlmetal 生成的代码与 dbml 设计器生成的 colde 不兼容的问题。
如果我有一个表(例如 Car),它有一个 FK 到另一个表(例如 Model),那么序列化会有所不同,它不会为关联属性生成 DataMember 属性:
// **************************
// *** Dbml designer code ***
// **************************
[ColumnAttribute(...)]
[DatamemberAttribute(...)]
public int ModelID
{
// property get and set
}
[AssociationAttribute(...)]
[DataMemberAttribute(...)]
public Model Model
{
// property get and set
}
// **********************
// *** Sqlmetal code ****
// **********************
[ColumnAttribute(...)]
[DatamemberAttribute(...)]
public int ModelID
{
// property get and set
}
[AssociationAttribute(...)]
// No DataMember attribute
public Model Model
{
// property get and set
}
有没有办法解决这个问题,在使用 sqlmetal 时让 Model 属性成为数据合同的一部分?