我需要协助;-)老实说不知道该怎么称呼它,所以如果人们提出更正确的措辞,我会改变标题以适应。c#推迟保存实施
我已经写了一个'什么'类的类就像一个工具类..可以在整个应用程序的许多项目中使用。
在实用程序类中,有一个对EF DB上下文的引用。这是为了当我想将结果保存到数据库中。
我想删除Utility类中的依赖关系,而是传入save方法。
我在努力弄清楚如何做到这一点。即与C#行动我知道你可以传递一个方法来执行,即指向一个函数。但是,如何让指针了解我的实用案例中的内容。
我希望我能正确说明所有的问题,请协助处理一个示例或链接到我所关注的内容。
显示代码:在这种情况下不确定它的必要性。但这是一个简单的例子。
public class UtilityCase
{
public List<Person> Persons = new List<Person>();
public void AddPerson(string name)
{
Person newPerson = new Person {Name = name};
Persons.Add(newPerson);
if (Persons.Count > 10)
{
PersistClear();
}
}
public void PersistClear()
{
//I want to be able to Set this from outside of the UtilityCase
var context = new Context();
//I want to remove the referance to the Entity (DB) Person
foreach (Person item in Persons)
{
//add person to db
}
context.saveChanges();
Persons.Clear();
}
}
DB实体的情况下
public class Person
{
public string Name { get; set; }
}
所以我明白,我需要创建一个本地类的实用工具来删除引用到的人(DB),但如何让我的功能注入以了解UtilityCase中的内容。由于
我一直很难理解你真正想要什么实现。在我看来,你想要一个PersistClear()方法,它不依赖于Person和Context,这引发了一个问题:为什么要把方法放在第一位?你能详细说明你究竟想要什么吗? –
我想注入保存实现...基本上是DDD,并从UtilityCase中删除类,使其对其他项目具有依赖性...即在这种情况下,它依赖于我的数据层。 – Seabizkit
“PersistClear()”的责任是什么?只是打电话给你通过的代表? –