EntityTypeConfigurationクラスの作成を開始し、次のことを行いました
public class Xyz
{
public int PlaceId { get; set; }
public string Name { get; set; }
public DbGeography Location { get; set; }
public int HumanTypeId { get; set; }
public int AddressId { get; set; }
}
およびEntityTypeConfigurationクラス
public sealed class XyzConfiguration:EntityTypeConfiguration<Xyz>
{
public XyzConfiguration()
{
ToTable("Place", "dbo");
HasKey(p => p.PlaceId);
Property(p => p.PlaceId)
.HasColumnName("PlaceId")
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
Property(p => p.Name);
Property(p => p.Location). ;
Property(p => p.HumanTypeId);
Property(p => p.AddressId);
}
}
DbGeography
および外部キー列HumanTypeId , AddressId
を設定する方法を教えてください。
前もって感謝します
カラムをどうするかによって異なります。 AddressId
のような外部キー列がある場合、Address
エンティティに関連付けたいXyz
エンティティがおそらくあります。エンティティの相互関係を決定し、エンティティ間のマッピングを構成する必要があります。
Address
クラスまたはXyz
クラスのいずれかにナビゲーションプロパティが必要です。そうでない場合、外部キーをバインドするものは何もありません。外部ID列は次のように扱われます。通常の列(必要な場合は問題ありません)。
したがって、Xyz
エンティティにナビゲーションプロパティを追加する場合
public class Xyz
{
// Your code
public int AddressId { get; set; }
public virtual Address MyAddress { get; set; }
}
// Your Address class
public class Address
{
public int ID;
}
これらの線に沿って何かを行うことでマッピングを構成できます(関係によって異なります:
public sealed class XyzConfiguration : EntityTypeConfiguration<Xyz>
{
public XyzConfiguration()
{
// Your code.
this.HasOptional(x => x.MyAddress) // Your Xyz has an optional Address
.WithMany() // Address may be owned by many Xyz objects
.HasForeignKey(x => x.AddressId); // Use this foreign key.
}
}
私は空間タイプとEFの使用を試していませんが、ここから始めます: http://msdn.Microsoft.com/en-us/data/hh859721.aspx
EFページの使用開始にマッピング構成に関する豊富な情報があります: http://msdn.Microsoft.com/en-us/data/ee712907 「Fluent API-プロパティとタイプの構成/マッピング」を試す
ここでは、さまざまな関連付けの種類について少し要約した説明もあります: コードの最初:独立した関連付けと外部キーの関連付けですか?