EntityData 模型到 ObservableCollection

发布于 2024-12-25 18:57:39 字数 118 浏览 1 评论 0原文

在我的应用程序中,我使用 Entity FrameWork 访问我的数据。它是一个 WPF MVVM 应用程序。我希望将我的实体数据更改为 ObservableCollection。有办法做到这一点吗?帮帮我吧。提前致谢。

In my application I am accessing my data using Entity FrameWork. Its a WPF MVVM application. I want my Entity Data to be changed into an ObservableCollection. Is there a way to do this? Help me out. Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

岁月流歌 2025-01-01 18:57:39

分割层/关注点的最灵活的方法是为每种类型编写一个转换器。这通常称为将实体数据类型 (EDO) 转换为数据传输类型 (DTO),反之亦然。这是一个可能的例子:

    public ObservableCollection<DTO.Schedule> GetSchedules(DateTime day)
    {
        using (var ctx = new MyContext())
        {
            var endOfDay = day.Date.Add(new TimeSpan(23, 59, 59));
            var found = from schedule in ctx.Schedules
                where (schedule.Date >= day.Date) && (schedule.Date <= endOfDay)
                select schedule;

            return new ObservableCollection<DTO.Schedule>(found.Select(GetSchedule));
        }
    }

    private static DTO.Schedule GetSchedule(EDO.Schedule schedule)
    {
        return schedule == null
            ? null
            : new DTO.Schedule
            {
                Id = schedule.ScheduleID,
                Name = schedule.Name,
                Description = schedule.Description,
                Status = schedule.Status,
                Date = schedule.Date,
            };
    }

The most flexible way for you to split your tiers/concerns is for you write a converter for each type. This is generally known as converting an Entity Data Type (EDO) to a Data Transfer Type (DTO) and vice-versa. Here's a potential example:

    public ObservableCollection<DTO.Schedule> GetSchedules(DateTime day)
    {
        using (var ctx = new MyContext())
        {
            var endOfDay = day.Date.Add(new TimeSpan(23, 59, 59));
            var found = from schedule in ctx.Schedules
                where (schedule.Date >= day.Date) && (schedule.Date <= endOfDay)
                select schedule;

            return new ObservableCollection<DTO.Schedule>(found.Select(GetSchedule));
        }
    }

    private static DTO.Schedule GetSchedule(EDO.Schedule schedule)
    {
        return schedule == null
            ? null
            : new DTO.Schedule
            {
                Id = schedule.ScheduleID,
                Name = schedule.Name,
                Description = schedule.Description,
                Status = schedule.Status,
                Date = schedule.Date,
            };
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文