Olá:
Estou criando um sistema com C# 3.5 e LINQ to SQL. Tenho as tabelas tb_MF_TLOG e tb_bac_banco que estão mapeadas para as classes Mftlog e Banco respectivamente conforme o código abaixo:
[Table(Name="dbo.tb_MF_TLOG")]
public partial class Mftlog : INotifyPropertyChanging, INotifyPropertyChanged
{
/// ...
private System.Nullable<short> _mf_fk_banco;
private EntityRef<Banco> _tb_bac_banco;
[Column(Name="mf_fk_banco", Storage="_mf_fk_banco", DbType="SmallInt")]
public System.Nullable<short> FkBanco
{
get
{
return this._mf_fk_banco;
}
set
{
if ((this._mf_fk_banco != value))
{
this._mf_fk_banco = value;
}
}
}
[Association(Name="Banco_Mftlog", Storage="_tb_bac_banco", ThisKey="FkBanco", OtherKey="Codigo", IsForeignKey=true)]
public Banco Banco
{
get
{
return this._tb_bac_banco.Entity;
}
set
{
if ((this._tb_bac_banco.Entity != value))
{
this._tb_bac_banco.Entity = value;
}
}
}
Para inserir os dados uso o seguinte método na classe derivada de System.Data.Linq.DataContext:
public void Salvar<E, K>(E e) where E: class, IBasicEntiity<K>
{
this.GetTable<E>().InsertOnSubmit(e);
this.SubmitChanges();
}
Eu preencho Mftlog.Banco e na hora de inserir o LINQ preenche FkBanco (pelo menos foi o que entendi). Entretanto ao inserir Mftlog eu obtenho o seguinte erro:
O erro acontece ao chamar SubmitChanges(). Aparentemente o LINQ tenta inserir um novo Banco em cascata ao inserir Mftlog. Mas eu não quero essa inserção em cascata.
O queria saber é se entre os atributos de mapeamento presentes em System.Data.Linq.Mapping existe algo equivalente ao elemento insertable da anotação JoinColumn do JPA. No código acima foram utilizados os atributos Column e Association. Mas não consegui achar nada na documentação que me ajudasse.
Grato,