我需要協助;-)老實說不知道該怎麼稱呼它,所以如果人們提出更正確的措辭,我會改變標題以適應。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()」的責任是什麼?只是打電話給你通過的代表? –