【问题标题】:Storing Methods in Entity Framework Database在实体框架数据库中存储方法
【发布时间】:2012-08-22 19:38:38
【问题描述】:

是否有一种简单的方法可以将方法存储在 EF 表中,类似于继承?

例如,我有一个代表门户页面上的应用程序的表格(有点像您的基本 iphone 或 android 主屏幕)。我想通过每个应用显示一个数字,显示该应用有多少通知。但是,获取通知数量的方法因应用而异。

我目前的解决方案是只拥有一个包含我需要的所有方法的类,然后根据应用名称进行切换。有没有更好的办法?

【问题讨论】:

  • 您想将代码存储在数据库字段中????
  • 我真的不明白数据库与它有什么关系,但在那些场景中你应该真正创建一个统一的接口。然后每个应用都应该实现该接口,可能通过一个适配器。
  • @CodingGorilla 不一定。 This question 看起来我可以用部分类来做到这一点。只是想知道选项是什么。
  • @AlbinSunnanbo 我还有一个用户表,我需要与它建立多对多关系以确定应用程序的权限。此外,我希望能够通过 UI 添加新应用。

标签: c# entity-framework ef-code-first code-first


【解决方案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
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多