Метод Void не запускается автоматически при запуске моего проекта - PullRequest
0 голосов
/ 17 февраля 2019

Я хочу, чтобы мой метод void запускался автоматически при запуске проекта, но это не так.Я попробовал это, но я думаю, что это не очень хороший способ.какой другой способ или как я могу инициализировать мой метод void.

string fAccount;
[Key]
[Size(150)]
public string Account
{
    get { GroupedAccount(); return fAccount; }
    set { SetPropertyValue<string>(nameof(Account), ref fAccount, value); }
}
private void GroupedAccount()
        {
            SqlConnection conn = new SqlConnection("Connection");
            SqlCommand cmd = new SqlCommand("SELECT * FROM Traders", conn);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            da.Fill(dt);
    conn.Open();
        var groupedData = from b in dt.AsEnumerable()
                          group b by b.Field<string>("Account Name") into g
                          select new
                          {
                              fAccounts = g.Key,
                          };

        foreach (var r in groupedData)
        {
            SqlCommand cmd2 = new SqlCommand("INSERT INTO dbo.TradersAccount (Account) VALUES (@Account)", conn);
            cmd2.Parameters.AddWithValue("@Account", r.fAccounts);
            cmd2.ExecuteNonQuery();
        }
        conn.Close();
        }

1 Ответ

0 голосов
/ 18 февраля 2019

В приложении XAF у вас есть несколько мест для размещения кода запуска, но в вашем случае это выглядит так, как будто вы пытаетесь инициализировать некоторые объекты в базе данных на основе существующих данных.Рекомендуемое место для этого - ModuleUpdater в файле Updater.cs .Для получения дополнительной информации см. Документацию:

Ваше свойство Account является частью объекта XPO.XPO - это объектно-реляционный картограф, то есть он абстрагируется от сложностей переноса ваших классов C # в хранилище SQL.В общем, вы должны воздерживаться от добавления любого дополнительного кода в методы получения и установки постоянных свойств.Документация DevExpress хороша:

В частности, XPO предназначен для отказа от необходимости прямого SQL.Если вам нужно, чтобы объекты TradersAccount создавались или обновлялись при каждом изменении объекта Trader, обычно вы создаете объект TraderAccount XPO, определяете свойство ассоциации и создаете его с помощью new TraderAccount(Session)и добавьте его в коллекцию свойств ассоциации.Тогда XPO автоматически сгенерирует все соответствующие SQL для вас.

...