在实体框架数据库中存储方法
Posted
技术标签:
【中文标题】在实体框架数据库中存储方法【英文标题】:Storing Methods in Entity Framework Database 【发布时间】:2012-08-22 19:38:38 【问题描述】:是否有一种简单的方法可以将方法存储在 EF 表中,类似于继承?
例如,我有一个代表门户页面上的应用程序的表格(有点像您的基本 iphone 或 android 主屏幕)。我想通过每个应用显示一个数字,显示该应用有多少通知。但是,获取通知数量的方法因应用而异。
我目前的解决方案是只拥有一个包含我需要的所有方法的类,然后根据应用名称进行切换。有没有更好的办法?
【问题讨论】:
您想将代码存储在数据库字段中???? 我真的不明白数据库与它有什么关系,但在那些场景中你应该真正创建一个统一的接口。然后每个应用都应该实现该接口,可能通过一个适配器。 @CodingGorilla 不一定。 This question 看起来我可以用部分类来做到这一点。只是想知道选项是什么。 @AlbinSunnanbo 我还有一个用户表,我需要与它建立多对多关系以确定应用程序的权限。此外,我希望能够通过 UI 添加新应用。 【参考方案1】:假设您获取通知的方法是无参数的,您可以将方法名称存储在该表的列中并通过反射调用它。对于此示例,我们将调用列/属性 NotificationMethodName。
//this would go in your entity class
public int GetNotificationCount()
MethodInfo mi = typeof(HelperClass).GetMethod(this.NotificationMethodName);
return (int)mi.Invoke(this, null);
public class HelperClass
//your class that currently has all the methods to get notification count
【讨论】:
以上是关于在实体框架数据库中存储方法的主要内容,如果未能解决你的问题,请参考以下文章