gpt4 book ai didi

c# - WPF - 将数据从 DAL 传递到 UI

转载 作者:行者123 更新时间:2023-11-30 21:42:40 25 4
gpt4 key购买 nike

这里是新人,所以请放轻松......

我有一个 WPF 项目,我已经创建了一个数据访问层,并且我使用以下代码获取了我需要的数据:

public static List<Model.CountryList> GetAllCountriesList()
{

SqlConnection connection = new DatabaseConnection().ConnectToBooze();
SqlCommand cmd = new SqlCommand();
SqlDataReader reader;
SqlDataAdapter da = new SqlDataAdapter();

cmd.CommandText = "dbo.spGetAllCountries";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = connection;

connection.Open();

reader = cmd.ExecuteReader();

var CompanyList = new List<Model.CountryList>();

while (reader.Read())
{
while (reader.Read())
{
var Cli = new Model.CountryList();
Cli.CountryID = Convert.ToInt32(reader["CountryID"]);
Cli.CountryName = reader["CountryName"].ToString();
//Add the country to Country List
CompanyList.Add(Cli);
}
}
//Return list
return CompanyList;
}

我正在努力解决的问题是,如何将它从 DAL 传递到我的表示层?我原以为是在表示层上创建一个“数据”类,它从我的 DAL 调用上面的方法并返回此列表,但是,我不确定如何在没有“无法将类型列表隐式转换为列表”的情况下执行此操作' 错误,我试过的是:

  public static List<Model.CountryList> GetAllCountries()
{
return DataAccessLayer.DatabaseGets.GetAllCountriesList();
}

感谢您的指导。

最佳答案

根据我的阅读,你问的更多关于架构而不是任何错误。考虑到这一点,我会说您提供的代码实际上是某个存储库的一部分,该存储库将实现您在其他地方定义的接口(interface),并将注入(inject)到需要该功能的任何 View 模型中。

一个简化的层次图可以是:

UI -> ViewModel -> Model <- DAL

namespace MyApp.Model
{
public interface IMyRepo
{
IEnumerable<Model.CountryList> GetAllCountries();
}
}

namespace MyApp.DAL
{
public class MyRepo : IMyRepo
{
IEnumerable<Model.CountryList> GetAllCountries()
{
/**
data access
**/
}
}
}

namespace MyApp.ViewModel
{
public class MainViewModel : ViewModelBase
{
public MainViewModel(IMyRepo repo)
{
this.Repo = repo;
}
}
}

关于c# - WPF - 将数据从 DAL 传递到 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42402125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com