c# – 自定义类中Linq to SQL的DeleteOnNull(关联属性)?

是否可以在自定义类上添加“DeleteOnNull = true”而不是直接修改DBML(生成)类?

例如,假设这是我生成的dbml类的一部分:

[Table(Name="OrderDetails")]
public partial class OrderDetail : 
       INotifyPropertyChanging, INotifyPropertyChanged
{
    // deleted for brevity

    [Association(Name="Order_OrderDetail", 
         Storage="_Order", ThisKey="OrderId", 
         OtherKey="OrderId", IsForeignKey=true, DeleteOnNull=true)]
    public Order Order 
    {
        get { /* deleted */ }
        set { /* deleted */ }
    }
}

那么可以将“DeleteOnNull = true”放在一个单独的类上吗?是吗?怎么样?我没试过就试过以下内容:

[MetadataType(typeof(OrderDetailMetadata))]
public partial class OrderDetail {
    internal sealed class OrderDetailMetadata
    {
        [Association(DeleteOnNull = true)]
        public object Order;
    }
}

最佳答案 迟到总比不到好:

如果您一直使用Designer创建LTS配置和实体,则可以右键单击DBML文件,然后选择“打开方式…”.现在选择XML Editor并单击OK.

在此文件中找到Order_OrderDetail关联,然后将DeleteOnNull =“true”添加到其中.保存文件,让LTS为您重新生成课程.完成!再也不会对生成的代码文件进行更改了!

点赞