こんにちは良い日
あなたが私を助けてくれることを願っています、それから私は私の問題を説明します:
これらは私のエンティティです:
http://i.stack.imgur.com/OjZmX.jpg
POCOを使用して、たとえばSDNを使用したresultadobusquedaofacなどの関係を作成する必要があります。このために、POCOテンプレートを使用します。
http://i.stack.imgur.com/qYbzy.jpg
それから私自身、これらのエンティティ内のパートナーシップを信じています。
ResultadoBusquedaOfac
public partial class ResultadoBusquedaOfac
{
#region Primitive Properties
public virtual int ent_num
{
get;
set;
}
public virtual string SDN_Name
{
get;
set;
}
public virtual int KeyCliente
{
get;
set;
}
public virtual string HayCoincidencia
{
get;
set;
}
public virtual string HayCoincidenciaAlias
{
get;
set;
}
#endregion
public virtual ICollection<OFAC_SDN> OFAC_SDN
{
get
{
if (_oFAC_SDN == null)
{
var newCollection = new FixupCollection<OFAC_SDN>();
newCollection.CollectionChanged += FixupOFAC_SDN;
_oFAC_SDN = newCollection;
}
return _oFAC_SDN;
}
set
{
if (!ReferenceEquals(_oFAC_SDN, value))
{
var previousValue = _oFAC_SDN as FixupCollection<OFAC_SDN>;
if (previousValue != null)
{
previousValue.CollectionChanged -= FixupOFAC_SDN;
}
_oFAC_SDN = value;
var newValue = value as FixupCollection<OFAC_SDN>;
if (newValue != null)
{
newValue.CollectionChanged += FixupOFAC_SDN;
}
}
}
}
private ICollection<OFAC_SDN> _oFAC_SDN;</em></strong>
private void FixupOFAC_SDN(object sender, NotifyCollectionChangedEventArgs e)
{
if (e.NewItems != null)
{
foreach (OFAC_SDN item in e.NewItems)
{
item.ResultadoBusquedaOfac = this;
}
}
if (e.OldItems != null)
{
foreach (OFAC_SDN item in e.OldItems)
{
if (ReferenceEquals(item.ResultadoBusquedaOfac, this))
{
item.ResultadoBusquedaOfac = null;
}
}
}
}
}
} OFAC_SDN
public partial class OFAC_SDN
{
#region Primitive Properties
<strong><em> public virtual Nullable<int> id_Ofac
{
get { return _id_Ofac; }
set
{
try
{
_settingFK = true;
if (_id_Ofac != value)
{
if (ResultadoBusquedaOfac != null && ResultadoBusquedaOfac.ent_num != value)
{
ResultadoBusquedaOfac = null;
}
_id_Ofac = value;
}
}
finally
{
_settingFK = false;
}
}
}
private Nullable<int> _id_Ofac;</em></strong>
public virtual int ent_num
{
get;
set;
}
public virtual string SDN_Name
{
get;
set;
}
public virtual string SDN_Type
{
get;
set;
}
public virtual string Program
{
get;
set;
}
public virtual string Title
{
get;
set;
}
public virtual string Call_Sign
{
get;
set;
}
public virtual string Vess_type
{
get;
set;
}
public virtual string Tonnage
{
get;
set;
}
public virtual string GRT
{
get;
set;
}
public virtual string Vess_flag
{
get;
set;
}
public virtual string Vess_owner
{
get;
set;
}
public virtual string Remarks
{
get;
set;
}
#endregion
#region Navigation Properties
public virtual ResultadoBusquedaOfac ResultadoBusquedaOfac
{
get { return _resultadoBusquedaOfac; }
set
{
if (!ReferenceEquals(_resultadoBusquedaOfac, value))
{
var previousValue = _resultadoBusquedaOfac;
_resultadoBusquedaOfac = value;
FixupResultadoBusquedaOfac(previousValue);
}
}
}
private ResultadoBusquedaOfac _resultadoBusquedaOfac;</em></strong>
public virtual ICollection<OFAC_ADD> OFAC_ADD
{
get
{
if (_oFAC_ADD == null)
{
var newCollection = new FixupCollection<OFAC_ADD>();
newCollection.CollectionChanged += FixupOFAC_ADD;
_oFAC_ADD = newCollection;
}
return _oFAC_ADD;
}
set
{
if (!ReferenceEquals(_oFAC_ADD, value))
{
var previousValue = _oFAC_ADD as FixupCollection<OFAC_ADD>;
if (previousValue != null)
{
previousValue.CollectionChanged -= FixupOFAC_ADD;
}
_oFAC_ADD = value;
var newValue = value as FixupCollection<OFAC_ADD>;
if (newValue != null)
{
newValue.CollectionChanged += FixupOFAC_ADD;
}
}
}
}
private ICollection<OFAC_ADD> _oFAC_ADD;
public virtual ICollection<OFAC_ALT> OFAC_ALT
{
get
{
if (_oFAC_ALT == null)
{
var newCollection = new FixupCollection<OFAC_ALT>();
newCollection.CollectionChanged += FixupOFAC_ALT;
_oFAC_ALT = newCollection;
}
return _oFAC_ALT;
}
set
{
if (!ReferenceEquals(_oFAC_ALT, value))
{
var previousValue = _oFAC_ALT as FixupCollection<OFAC_ALT>;
if (previousValue != null)
{
previousValue.CollectionChanged -= FixupOFAC_ALT;
}
_oFAC_ALT = value;
var newValue = value as FixupCollection<OFAC_ALT>;
if (newValue != null)
{
newValue.CollectionChanged += FixupOFAC_ALT;
}
}
}
}
private ICollection<OFAC_ALT> _oFAC_ALT;
#endregion
#region Association Fixup
private bool _settingFK;
private void FixupResultadoBusquedaOfac(ResultadoBusquedaOfac previousValue)
{
if (previousValue != null && previousValue.OFAC_SDN.Contains(this))
{
previousValue.OFAC_SDN.Remove(this);
}
if (ResultadoBusquedaOfac != null)
{
if (!ResultadoBusquedaOfac.OFAC_SDN.Contains(this))
{
ResultadoBusquedaOfac.OFAC_SDN.Add(this);
}
if (id_Ofac != ResultadoBusquedaOfac.ent_num)
{
id_Ofac = ResultadoBusquedaOfac.ent_num;
}
}
else if (!_settingFK)
{
id_Ofac = null;
}
}
private void FixupOFAC_ADD(object sender, NotifyCollectionChangedEventArgs e)
{
if (e.NewItems != null)
{
foreach (OFAC_ADD item in e.NewItems)
{
item.OFAC_SDN = this;
}
}
if (e.OldItems != null)
{
foreach (OFAC_ADD item in e.OldItems)
{
if (ReferenceEquals(item.OFAC_SDN, this))
{
item.OFAC_SDN = null;
}
}
}
}
private void FixupOFAC_ALT(object sender, NotifyCollectionChangedEventArgs e)
{
if (e.NewItems != null)
{
foreach (OFAC_ALT item in e.NewItems)
{
item.OFAC_SDN = this;
}
}
if (e.OldItems != null)
{
foreach (OFAC_ALT item in e.OldItems)
{
if (ReferenceEquals(item.OFAC_SDN, this))
{
item.OFAC_SDN = null;
}
}
}
}
#endregion
}
}
テストクエリを実行すると、次のようになります。
public部分クラスForm1:Form {public Form1(){InitializeComponent(); LegitimacionEntities context = new LegitimacionEntities();
var query = context.ResultadoBusquedaOfac.Include("OFAC_SDN").Where(us => us.ent_num.Equals(10)).First();
MessageBox.Show(query.SDN_Name);
}
}
}
次のエラーがスローされます。
指定されたインクルードパスが無効です。EntityType'LegitimacionModel.ResultadoBusquedaOfac'は、'OFAC_SDN'という名前のナビゲーションプロパティを宣言していません。
これに加えて、データサービスまたはWCFでデータを渡す必要があります。現在、上記に渡す前に、関係が適切であることを最初に証明するために行っています。
よろしくお願いします。コメントをお待ちしております...
幸せな日々