1

エンティティ分割:1つのクラス、2つ以上のテーブル。VB.NETサンプルエンティティフレームワーク4.2コードファーストエンティティ分割

これはC#での処理方法ですが、vb.netで動作させる必要があります。
もう1つ:クラス名と表の列は一致しません。と一致しているので、それもマップする必要があります。

私は今で働いている場所がvb.net のみショップやデータベーススキーマがめちゃくちゃですので、私は、これはこのように動作するように取得する必要がありますが、彼らはそんなに(百万人)を持っているのコード行は、を直接のasp classic、vb.net、asp.netの両方のWebフォームでデータベースに対して行いました。現時点でスキーマを変更することは現実的に不可能です。

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    modelBuilder.Entity<Post>() 
    .Map(m => 
     { 
     m.Properties(p => new { p.Title, p.Content }); 
     m.ToTable("Posts"); 
     }) 
    .Map(m => 
     { 
     m.Properties(p => new { p.Photo }); 
     m.ToTable("PostPhotos"); 
     }); 
} 

答えて

3

これは、上記のVBと同等である:受け入れ答えの(匿名型の使用を伴う)ここ

modelBuilder.Entity(Of Post)().Map(Sub(m) 
              m.Properties(Of Post)(
              Function(p) _ 
               New Post With {.Title= p.Title, _ 
                   .Content = p.Content }) 
              m.ToTable("Posts") 
             End Sub).Map(Sub(m) 
                 m.Properties(
                  Function(p) _ 
                  New Customer With {.Photo = p.Photo}) 
                 m.ToTable("PostPhotos") 
                End Sub) 
+0

あなたが本当にのために2級を持っている必要がありますDBテーブル?私はポストと写真を意味します。それは匿名のクラスで行うことは不可能ですか? –

0

正しいバージョン。私はそれが助けてくれることを願っています...

本当にドット表記で行うことができますが、コードインデントは本当に奇妙です。私は他の道を優先しました:あなたはこのように、モデルにこの設定を追加する必要が

Public Class PostConfiguration 
    Inherits EntityTypeConfiguration(Of Post) 

    Public Sub New() 

     Map(Sub(m) 
       m.Properties(
        Function(p) _ 
         New With {Key p.Title, Key p.Content}) 
       m.ToTable("Posts") 
      End Sub) 

     Map(Sub(m) 
       m.Properties(
        Function(p) _ 
        New With {Key p.Photo }) 
       m.ToTable("PostPhotos") 
      End Sub) 

    End Sub 
    End Class 

EntityTypeConfigurationクラスを作成します。

Protected Overrides Sub OnModelCreating(ByVal modelBuilder As DbModelBuilder) 
     modelBuilder.Configurations.Add(New PostConfiguration) 
    End Sub 
関連する問題