仍在使用我的第一个UWP/MVVM/EF Core应用程序.
我不希望我的viewmodels对DbContext有任何了解.所以我创建了以下ItemService类,注入到我的视图模型中.
public class ItemService : IItemService
{
public async Task SaveAsync(Item item)
{
using (var db = new MyDbContext())
{
db.Items.Add(item);
await db.SaveChangesAsync();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的ItemViewModel包含以下命令:
public RelayCommand SaveCommand { get; private set; }
private async void Save()
{
if (!SaveCommand.CanExecute(Item))
return;
await ItemService.SavAsync(Item);
}
Run Code Online (Sandbox Code Playgroud)
保存项目时这很有用.SaveAsync方法创建DbContext的新实例,添加刚刚创建的项,然后将更改提交到数据库.
我的问题是关于更新现有记录.我想这样的事情:
public class ItemService : IItemService
{
public async Task UpdateAsync(Item item)
{
using (var db = new MyDbContext())
{
Item dbItem = (from i in db.Items
where i.Id = item.Id …Run Code Online (Sandbox Code Playgroud) 我正在考虑一个新的移动/平板电脑应用程序。
我想让用户开发自己的插件。
想象一下在 Android 平板电脑上运行的收银台应用程序。用户在连接到信用卡读卡器时可以使用许多替代方法(Square、Sum'Up、...)。
如果我的应用程序是旧的 Win32,我只会发布一个 API,然后让Square或Sum'Up开发人员创建一个 DLL。然后,这个 DLL 将被放置在计算机上的某个地方。在应用程序启动时,我只需要查找那些 DLL 并动态加载它们。
事实上,真正的问题是:是否可以创建基于插件的应用程序?我在这里考虑托管可扩展性框架。许多问题浮现在脑海:
我找不到任何关于此的文档。
非常感谢您的想法和指示。
我正在使用Prism和Xamarin Forms创建一个应用程序。我想对视图模型进行单元测试。
我有一个导航到页面的命令。我想断言在该命令被调用后导航发生在正确的页面上。
我想我需要复制在Prism / Source / Xamarin / Prism.Forms.Tests / Navigation / PageNavigationServiceFixture.cs文件中找到的代码。
例如,查看此方法(来自PageNavigationServiceFixture类):
public async void Navigate_ToContentPage_ByName()
{
var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade);
var rootPage = new Xamarin.Forms.ContentPage();
((IPageAware)navigationService).Page = rootPage;
await navigationService.NavigateAsync("ContentPage");
Assert.True(rootPage.Navigation.ModalStack.Count == 1);
Assert.IsType(typeof(ContentPageMock), rootPage.Navigation.ModalStack[0]);
}
Run Code Online (Sandbox Code Playgroud)
它创建导航服务,导航到页面,然后断言该页面已更改。
现在这是我的测试课:
[TestClass]
public class MenuPrincipalViewModelTests
{
[TestMethod]
public void AProposCommand()
{
INavigationService navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade);
// 1: Here I need to initialize my navigation service to my MasterDetailPage
MenuPrincipalPageViewModel viewModel = …Run Code Online (Sandbox Code Playgroud) 我正在使用EntityFramework创建我的第一个应用程序.我正在使用Entity Framework Core和MVVMLight.
我创建了一个DbContext后代类.我想知道何时实现这个DbContext.
我的第一个想法是为每个View创建1个实例.
想象一下以下场景:
当用户退出详细信息视图时:
这是一种正确的做事方式吗?我已经读过某个地方应该只有一个DbContext实例.但在这种情况下,即使细节视图被取消,对细节视图的每个修改都会传播到列表视图.
很多人都喜欢听