代码改变世界

以继承方式让EF使用泛型

2014-05-25 22:32  Jason Jiang  阅读(367)  评论(0)    收藏  举报

Entity Framework 无法直接使用泛型,但是我们可以通过使用继承的办法来间接使用泛型。

 

 

Imports System.Data.Entity

Imports System.ComponentModel.DataAnnotations

 

Module Module1

 

    Sub Main()

        Database.SetInitializer(New MigrateDatabaseToLatestVersion(Of mycontext, Migrations.Configuration)())

        Dim myc As New mycontext

        Dim myg As New GenericDerivative With {.x = "uuu", .y = "cdd"}

        Dim myge As New GenericProperty With {.GenericString = myg}

        myc.Gp.Add(myge)

 

 

        myc.SaveChanges()

        Console.WriteLine("create Successfully")

        For Each w In myc.Gp

            Console.WriteLine(w.GenericString.x)

        Next

        Console.ReadKey()

 

 

 

    End Sub

 

End Module

Public Class mycontext

    Inherits DbContext

    Public Property Gp As DbSet(Of GenericProperty)

End Class

Public Class GenericProperty

    <Key()>

    Public Property id As Integer

    Public Overridable Property GenericString As GenericDerivative

 

End Class

 

Public Class Generic(Of T)

    <Key()>

    Public Property id As Integer

    Public Property x As T

    Public Property y As T

 

End Class

 

Public Class check

    <Key()>

    Public Property id As Integer

    Public Property u As String

    Public Property t As Boolean

End Class

 

Public Class GenericDerivative

    Inherits Generic(Of String)

End Class