以继承方式让EF使用泛型

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

时间: 2024-07-31 20:14:07

以继承方式让EF使用泛型的相关文章

js的5种继承方式——前端面试

js主要有以下几种继承方式:对象冒充,call()方法,apply()方法,原型链继承以及混合方式.下面就每种方法就代码讲解具体的继承是怎么实现的. 1.继承第一种方式:对象冒充 1 function Parent(username){ 2 this.username = username; 3 this.hello = function(){ 4 alert(this.username); 5 } 6 } 7 function Child(username,password){ 8 //通过以

C++学习15 继承权限和继承方式

C++继承的一般语法为: class 派生类名:[继承方式] 基类名{ 派生类新增加的成员 }; 继承方式限定了基类成员在派生类中的访问权限,包括 public(公有的).private(私有的)和 protected(受保护的).此项是可选的,如果不写,默认为 private 或 protected. 1) public继承方式 基类中所有public成员在派生类中为public属性: 基类中所有protected成员在派生类中为protected属性: 基类中所有private成员在派生类中

JavaScript中继承方式详解

继承一直是面向对象语言中的一个最为人津津乐道的概念,在JavaScript中,继承也是难点之一,下面我尽量用通俗的语言来介绍一下实现继承的几种方法. 原型链 ECMAScript 中描述了原型链的概念,并将原型链作为实现继承的主要方法.其基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法.这个基本思想说的一点也不基本,那么先说一个在之前博文中提到的概念,原型与实例的关系.我们知道:每一个实例里包含了原型对象中的方法和属性.这是因为任何一个对象都有一个内部属性[[prototype]]

对象继承方式

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>对象继承</title> </head> <body> <script> /* function Person(name, age){ this.name = name; this.age = age; this.say

js的6种继承方式

重新理解js的6种继承方式 注:本文引用于http://www.cnblogs.com/ayqy/p/4471638.html 重点看第三点 组合继承(最常用) 写在前面 一直不喜欢JS的OOP,在学习阶段好像也用不到,总觉得JS的OOP不伦不类的,可能是因为先接触了Java,所以对JS的OO部分有些抵触. 偏见归偏见,既然面试官问到了JS的OOP,那么说明这东西肯定是有用的,应该抛开偏见,认真地了解一下 约定 P.S.下面将展开一个有点长的故事,所以有必要提前约定共同语言: 1 2 3 4 5

JavaScript中的几种继承方式对比

转自:http://blog.csdn.net/kkkkkxiaofei/article/details/46474069 从'严格'意义上说,JavaScript并不是一门真正的面向对象语言.这种说法原因一般都是觉得javascript作为一门弱类型语言与类似Java或c#之类的强型语言的继承方式有很大的区别,因而默认它就是非主流的面向对象方式,甚至竟有很多书将其描述为'非完全面向对象'语言. 为何需要利用JavaScript实现继承? 早期pc机器的性能确实不敢恭维,所有的压力全在服务器端,

JavaScript 继承方式详解

js继承的概念 js里常用的如下两种继承方式: 原型链继承(对象间的继承)类式继承(构造函数间的继承) 由于js不像java那样是真正面向对象的语言,js是基于对象的,它没有类的概念.所以,要想实现继承,可以用js的原型prototype机制或者用apply和call方法去实现 在面向对象的语言中,我们使用类来创建一个自定义对象.然而js中所有事物都是对象,那么用什么办法来创建自定义对象呢?这就需要用到js的原型: 我们可以简单的把prototype看做是一个模版,新创建的自定义对象都是这个模版

C++中的struct与class继承方式

代码: 1 #include <iostream> 2 #include <cstdio> 3 4 using namespace std; 5 6 //class A{ 7 struct A{ 8 public: 9 int i{5}; 10 void print(){ 11 cout<<i<<endl; 12 } 13 }; 14 //class B:A{ 15 struct B:A{ 16 public: 17 }; 18 19 int main(){

JavaScript继承方式详解

js继承的概念 js里常用的如下两种继承方式: 原型链继承(对象间的继承) 类式继承(构造函数间的继承) 由于js不像java那样是真正面向对象的语言,js是基于对象的,它没有类的概念.所以,要想实现继承,可以用js的原型prototype机制或者用apply和call方法去实现 在面向对象的语言中,我们使用类来创建一个自定义对象.然而js中所有事物都是对象,那么用什么办法来创建自定义对象呢?这就需要用到js的原型: 我们可以简单的把prototype看做是一个模版,新创建的自定义对象都是这个模