如何将实体从一个上下文(继承DbContext
)复制到另一个上下文?
我发现的所有东西只适用于ObjectContext
但不适用于DbContext
或使用DbContext
但不起作用.
例如,我发现/尝试过:
我将它用于两个目的:
怎么做?
EF 6.1.1,.NET 4.5.2,C#
以下是尝试模拟第二个操作的测试代码(上游更改回远程数据库):
var addedFirst = localContext.Firsts.AsNoTracking().Single(m => m.Id == 4);
var updatedFirst = localContext.Firsts.AsNoTracking().Single(m => m.Id == 2);
addedFirst.Items.First().Id = 0;
addedFirst.Items.First().FirstId = 0;
addedFirst.Id = 0;
remoteContext.FirstItems.Add(addedFirst.Items.First());
remoteContext.Firsts.Add(addedFirst);
var originalFirst = remoteContext.Firsts.Single(m => m.Id == 2);
var originalItem = originalFirst.Items.First();
originalItem.Title = updatedFirst.Items.First().Title;
Run Code Online (Sandbox Code Playgroud)
这是模型:
public class ModelFirstBase …
Run Code Online (Sandbox Code Playgroud) 我在.NET Core 3.0项目上启用C#8.0可空引用类型。该项目使用Entity Framework Core 3.0访问数据库。
以下是标题不应该为null的数据模型。
public class Vehicle
{
public int Id { get; private set; }
public string Title { get; private set; }
// Entity Framework Core is instructed to bind to the private _drivers field in a configuration builder
private readonly List<Driver> _drivers = new List<Driver>();
public IReadOnlyCollection<Driver> Drivers => _drivers.AsReadOnly();
private Vehicle()
{
}
public Vehicle(string title)
{
this.Title = title;
}
public void AddDriver(string name)
{
this._drivers.Add(new Driver(name));
}
}
// A foreign …
Run Code Online (Sandbox Code Playgroud) c# entity-framework entity-framework-core .net-core nullable-reference-types
我想传递一个ABC:DEF
名为docker-compose.yml
.
怎么做?
如果我写在服务定义中
environment:
ABC:DEF: ${ABC:DEF}
Run Code Online (Sandbox Code Playgroud)
我有
ERROR: Invalid interpolation format for "environment" option in service: "${ABC:DEF}"
编辑:这个问题的目标是了解是否可以使用包含:
冒号的环境变量名称以及如何在docker-compose.yml
. 从受影响容器内运行的“事物”的角度讨论使用冒号的替代方案:
不是问题的一部分。
有一些表:
CREATE TABLE `asource` (
`id` int(10) unsigned NOT NULL DEFAULT '0'
);
CREATE TABLE `adestination` (
`id` int(10) unsigned NOT NULL DEFAULT '0',
`generated` tinyint(1) GENERATED ALWAYS AS (id = 2) STORED NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
我从asource
to复制一行adestination
:
INSERT INTO adestination
SELECT asource.*
FROM asource;
Run Code Online (Sandbox Code Playgroud)
以上产生一个错误:
Error Code: 1136. Column count doesn't match value count at row 1
Run Code Online (Sandbox Code Playgroud)
好的,要求我提及生成的查询很奇怪。但是好的,我将该列添加到查询中:
INSERT INTO adestination
SELECT asource.*, NULL AS `generated`
FROM asource;
Run Code Online (Sandbox Code Playgroud)
这在 5.7.10 中运行良好。但是,它会在 5.7.11 中生成错误(由于修复 …
一个网站支持多种语言。支持多语言(包括路由)的代码已经到位并可以工作。
本地化设置使用RouteDataRequestCultureProvider
作为explaned https://joonasw.net/view/aspnet-core-localization-deep-dive。
app.UseRouter(routes =>
{
routes.MapMiddlewareRoute("{culture=en-US}/{*mvcRoute}", subApp =>
{
subApp.UseRequestLocalization(localizationOptions);
subApp.UseMvc(mvcRoutes =>
{
// Routes are here
}
});
});
Run Code Online (Sandbox Code Playgroud)
如何创建一个通用标签,以不同的语言显示当前页面?
理想情况下,我只需指定此链接应指向哪种语言,并应保留所有其他路由参数(如当前控制器、当前操作、当前路由模型),以便我可以在_Layout.cshtml
?
我有一个ASP.NET Core 2.0 MVC应用程序使用存储在/ Pages文件夹下的项目树中的Razor页面.
使用默认路由等设置项目.
我希望所有Razor页面在浏览器的地址栏中都有.html扩展名.
文件/Pages/test.cshtml目前可通过http:// localhost/test获得.我希望通过http://localhost/test.html提供此页面.
我试图理解路由设置,但没有足够的理解它来提供解决方案.
我应该写什么,以便通过.html后缀提供文件?
PHP会话逻辑具有两个不同的SessionHandlerInterface
和SessionUpdateTimestampHandlerInterface
接口,而SessionUpdateTimestampHandlerInterface
接口还没有完全在该文档中描述的.
该SessionHandlerInterface::write
和SessionUpdateTimestampHandlerInterface::updateTimestamp
功能的感觉颇为相似.两者都有相同的参数(会话ID和会话数据)并返回一个bool.
这两个功能有什么区别?
应该如何区分实现这两个功能的代码?
如果没有为updateTimestamp
函数提供时间戳,代码应该如何更新时间戳?
PHP 网站使用 cookie 在浏览器端存储会话 ID。目标是在最近的用户与站点交互后的特定时间段内,PHP 会话将被视为有效。
PHP 会话有两个不同的超时:
PHP 内置逻辑仅在第一次session_start()
调用时发送 cookie ,即生成会话 ID。cookie 不会在进一步请求时发送,因此 cookie 过期时间永远不会延长。
与此相反,每次请求都会延长 PHP 会话到期时间。
因此,如果用户持续与站点交互,PHP 会话过期时间会延长,但 cookie 过期时间保持其原始值。
例子:
时间点/PHP 会话过期/cookie 过期
1 / 6 / 6
2 / 7 / 6
4 / 9 / 6
如何强制 PHP 在每个(或几乎每个)请求上更新 cookie 的过期时间?最佳做法是什么? …
我正在尝试从 Microsoft Flow 调用 CDN Purge 的 Azure REST API url。
但是,我不知道要在“受众”和“客户 ID”字段中输入什么内容。
我尝试搜索文档但没有找到任何相关结果。我认为其中之一应该是应用程序 ID。
受众和客户 ID 字段中应输入什么内容以及如何查找这些值?
是否还需要执行其他操作才能使其正常工作(例如设置允许清除 CDN、更新清单、分配角色的权限)?
PS:我正在进行BadRequest. Http request failed as there is an error getting AD OAuth token: 'AADSTS50105: Application '<appId>' is not assigned to a role for the application '<appIdUri>'.
我最近的尝试。
PHP 7.1 应用程序使用 composer 的自动加载器来查找类定义。命名空间映射在composer.json
文件中定义。
该应用程序还使用 ICU 模块的ResourceBundle
类从*.res
文件加载可本地化的文本。每个具有可本地化文本的类都有自己的一组*.res
文件(每种语言一个文件)。提供本地化支持的代码获取应加载其文本的类的完全限定名称。
我想让这些*.res
文件位于它们各自的类文件旁边(或在子文件夹中,例如/locale/
)。为此,如果我能以某种方式获取类文件路径而无需在 Composer 的自动加载器中重新实现现有代码,我将表示欢迎。
理想情况下,我应该能够获取路径,而无需实例化类并以某种方式获取其文件位置。
这种方法可行吗?你有什么建议?
ASP.NET Core 2.2网站显示了来自Kentico Cloud CMS的数据。其中一些项目包含富文本字段。这些字段可能包含指向其他内容项的链接。这些链接应由网站解析为URL。
该文档建议通过实现IContentLinkUrlResolver
接口来完成此操作。但是,对于我们的网站而言,该样本实在是太虚伪了。我们的解析器需要知道请求的上下文(例如当前的UI文化,因为该站点是多语言环境)和路由定义,因为这是定义URL外观的唯一位置。
实际上,解析程序需要能够调用Url.Action,就像它可以在视图内部一样。
网址解析器应尊重路由和当前的ui文化。预期其逻辑如下:
if (the linked content item type is Page)
{
Url.Action("Page", "Home", new [] { codename = content item’s codename });
}
else if (the linked content item type is PageFont)
{
Url.Action("Font", "Home", new [] { codename = content item’s codename });
}
else
{
throw an error about an unsupported content type.
}
Run Code Online (Sandbox Code Playgroud)
规则定义为:
var localizationOptions = app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>();
app.UseRouter(routes =>
{
routes.MapMiddlewareRoute("{culture=en-US}/{*mvcRoute}", subApp =>
{
subApp.UseRequestLocalization(localizationOptions.Value);
subApp.UseMvc(mvcRoutes …
Run Code Online (Sandbox Code Playgroud) c# ×5
php ×3
asp.net-core ×2
session ×2
.net ×1
.net-core ×1
asp.net-mvc ×1
autoload ×1
azure ×1
azure-cdn ×1
composer-php ×1
cookies ×1
docker ×1
kentico ×1
mysql ×1