我正在尝试用一些IDatabaseIntialiser像这样的测试数据为我的数据库播种:
protected override void Seed(BlogDataContext context)
{
// <snip>
var post = context.Posts.Create();
post.Title = "My Life On Twitter";
// <snip properties>
// Set tags
post.Tags.Add(aspnetTag); // NullRefException
post.Tags.Add(razorTag);
Run Code Online (Sandbox Code Playgroud)
Post实体看起来像这样:
public class Post
{
// ...
public virtual ICollection<Tag> Tags { get; set; }
Run Code Online (Sandbox Code Playgroud)
Bitbucket的完整实体:帖子和标签.所有代码均在http://code.dantup.com/blog
但是,post.Tags为null,所以这不起作用.最初我是创建帖子new Post(),但是因为我正在调用CreateEF提供的方法,为什么集合没有初始化?
在这里实例化我自己的集合感觉很笨拙,如果我在构造函数中这样做,大概每次我从EF加载一个实体时,它都会在构造函数中创建集合,然后用一个包含实际数据的集合覆盖它. D B?
有没有办法告诉EF为我创建一个实体,包括我的集合/代理ICollections(假设ICollection是正确的选择)?
编辑:context.Configuration.ProxyCreationEnabled设置为true(默认情况下),这似乎是存在的原因?
.net asp.net-mvc entity-framework sql-server-ce ef-code-first
在研究涉及温度转换的小型烹饪项目以及一些烹饪测量转换(例如Imperial to Metric)时,我一直在努力学习更多关于代表和lambdas的知识,我一直试图想办法制作一个可扩展的单位转换器.
这是我的开始,以及我的一些计划的代码评论.我没有计划像下面那样使用它,我只是测试了C#的一些功能我不太了解,我也不确定如何进一步采取这一点.有没有人对如何在下面的评论中创建我正在谈论的内容有任何建议?谢谢
namespace TemperatureConverter
{
class Program
{
static void Main(string[] args)
{
// Fahrenheit to Celsius : [°C] = ([°F] ? 32) × 5?9
var CelsiusResult = Converter.Convert(11M,Converter.FahrenheitToCelsius);
// Celsius to Fahrenheit : [°F] = [°C] × 9?5 + 32
var FahrenheitResult = Converter.Convert(11M, Converter.CelsiusToFahrenheit);
Console.WriteLine("Fahrenheit to Celsius : " + CelsiusResult);
Console.WriteLine("Celsius to Fahrenheit : " + FahrenheitResult);
Console.ReadLine();
// If I wanted to add another unit of temperature i.e. Kelvin
// then I would need …Run Code Online (Sandbox Code Playgroud) 我正在研究使用基于代码的EF迁移来获取不使用EF的产品.一切都运行良好,除了命令:
Add-Migration MyTestMigration
Run Code Online (Sandbox Code Playgroud)
输出以下消息:
由于以下显式迁移未决,因此无法生成显式迁移:[201206260845338_DannyTest].在尝试生成新的显式迁移之前应用挂起的显式迁移.
原因是连接字符串在构建时是未知的,并且EF在.\ SQLExpress上随机创建了一个名为"MyContextName"的数据库.我无法应用挂起的迁移,因为它引用了此数据库中不存在的数据库表 - 我们只是尝试使用迁移作为执行脚本的方式;
所以问题是:
如果我们没有使用自动迁移(我们有EnableAutomaticMigrations = false),为什么Add-Migration要求数据库是最新的,即使它对生成的(空)迁移没有任何影响?我发现很难相信MS在这么多用法的情况下不打算使用这个用例; 唯一"破碎"的东西是不影响任何行为的验证.
除了创建我们自己的Add-Migration命令之外,还有什么方法可以复制EF的功能,但跳过(看似不必要的)DB最新检查?我试过传递各种论点,但到目前为止还没有成功.
我实际上找到了解决这个问题的更好方法,但它并不是这些问题的真正答案,所以在这里添加它.希望有时间把它变成博客文章!
我想使用Add-Migration的唯一原因是因为DbMigration带来的所有guff; 但我意识到,通过基类,我们基本上可以通过让基类从属性自动生成迁移ID来消除所有这一切.目标对于我们的所有迁移都是相同的,因为模型状态不会改变.现在,我们只需手动创建这样的迁移(构建ID需要日期,以便EF以正确的顺序应用它们):
[Migration(2012, 6, 27, 12, 00, "Add new xxx fields for yyy")]
internal class MyNewMigration : MyDbMigration
{
public override Up()
{
// ...
}
public override Down()
{
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
本MyDbMigration类有目标/来源/标识特性.Target是硬编码的(与第一次迁移时创建的Add-Migration相同),Source为null,Id是读取MigrationAttribute的反射.这意味着我们现在可以手动创建这些类; 现在我们不用担心所有的IMigrationMetadata内容:-)
我是iPhone开发人员的新手,但他正在尝试构建一个2D游戏.我正在关注一本书,但它创建的游戏循环基本上说:
function gameLoop
update()
render()
sleep(1/30th second)
gameLoop
Run Code Online (Sandbox Code Playgroud)
原因是这将以30fps运行.然而,这似乎有点精神,因为如果我的框架花了1/30秒,那么它将以15fps运行(因为它将花费尽可能多的时间来更新).
所以,我做了一些挖掘,发现了CADisplayLink类,它将我的gameLoop函数的调用与刷新率(或其中的一小部分)同步.我找不到它的很多样本,所以我在这里发布代码审查:-)它似乎按预期工作,它包括将经过的(帧)时间传递到Update方法,所以我的逻辑可以是帧率 - 独立(但我实际上无法在文档中找到CADisplayLink如果我的框架花费超过其允许的运行时间将会做什么 - 我希望它只是尽力赶上,并且不会崩溃!).
//
// GameAppDelegate.m
//
// Created by Danny Tuppeny on 10/03/2010.
// Copyright Danny Tuppeny 2010. All rights reserved.
//
#import "GameAppDelegate.h"
#import "GameViewController.h"
#import "GameStates/gsSplash.h"
@implementation GameAppDelegate
@synthesize window;
@synthesize viewController;
- (void) applicationDidFinishLaunching:(UIApplication *)application
{
// Create an instance of the first GameState (Splash Screen)
[self doStateChange:[gsSplash class]];
// Set up the game loop
displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(gameLoop)];
[displayLink setFrameInterval:2];
[displayLink addToRunLoop:[NSRunLoop currentRunLoop] …Run Code Online (Sandbox Code Playgroud) 从NuGet安装软件包时,它可以运行一些Powershell脚本进行设置(例如导出要在Package Manager控制台中使用的命令).
我正在尝试(并且失败)找到这些脚本能够/不能做什么的细节.具体来说 - 我们应该担心这些恶意代码吗?他们可以读取文件系统,发送Web请求等吗?
这种情况在最近几天开始发生; 可能是因为我安装了Visual Studio 2012.它目前只发生在我的机器上(我的同事们都在VS 2010上),但我希望卸载VS 2012,看看是否有影响.
我的所有Web请求中约有50%在SessionStateModule/REQUEST_AQUIRE_STATE中挂起约100秒(然后页面成功完成).
ANTS Profiler一直报告为"等待同步",并在一些IIS线程回调中给出了堆栈跟踪(我们的代码都没有;遗憾的是我没有信息可用).
我为所有请求启用了IIS失败请求跟踪,并重新加载了我们应用的同一页面10次.请求3,5,7,9全部耗时> 100秒,其他请求耗时<5秒.
我们正在使用In Process会话,因此没有任何内容通过网络或被序列化.据我所知,在发生这种情况之前,我们的代码都没有运行过.
如何获得有关调试问题的更多信息?
可能相关:
我正在尝试做一些非常简单的事情;更改输入的边框颜色。在 IE11 和最新的稳定版 Chrome 中,更改颜色也会更改其外观(显示为 3D/更厚):

如果我尝试“1px solid red”,那么边框看起来是一样的,但大小会发生变化!
我试过弄乱边框宽度和其他属性,但它们都没有导致与默认值完全相同的大小/间距,只是颜色发生了变化:(
(请在发布之前在 JSFiddle 中尝试您的更改......很多人发布错误答案然后删除它们!http://jsfiddle.net/S2TxT/4/)
<input type="text" value="Default" />
<input type="text" style="border: 1px solid red" />
Run Code Online (Sandbox Code Playgroud) 我正在阅读一些关于 Unicode 的问题,其中有一些我不完全理解的评论,例如:
Dean Harding:UTF-8是一种变长编码,处理起来比定长编码更复杂。另外,请参阅我对 Gumbo 答案的评论:基本上,所有编码(UTF-8、UTF-16 和 UTF-32)中都存在组合字符,并且它们需要特殊处理。您可以使用与组合字符相同的特殊处理来处理 UTF-16 中的代理项对,因此在大多数情况下您可以忽略代理项并将 UTF-16 视为固定编码。
我对最后一部分(“大部分”)有点困惑。如果UTF-16被视为固定的16位编码,这会导致什么问题?存在 BMP 之外的字符的可能性有多大?如果存在,如果您假设为两字节字符,这可能会导致什么问题?
我阅读了关于代孕者的维基百科信息,但它并没有真正让我更清楚事情!
编辑:我想我真正的意思是“为什么有人建议将 UTF-16 视为固定编码,而它看起来是假的?”
编辑2:
我在“ Is There Any Reasons to Preferred UTF-16 over UTF-8? ”中找到了另一条评论,我认为这更好地解释了这一点:
Andrew Russell:就性能而言:UTF-8 比 UTF-16 更难解码。在 UTF-16 中,字符要么是基本多语言平面字符(2 字节),要么是代理对(4 字节)。UTF-8 字符可以是 1 到 4 个字节之间的任意位置
这表明 UTF-16 不会有任何三字节字符,因此通过假设 16 位,您不会因减少一个字节而“完全搞砸”。但我仍然不相信这与假设 UTF-8 是单字节字符有什么不同!
我刚刚学习F#,在tryfsharp.org上玩的时候,我注意到如果我更改了这段代码:
[0..100]
|> List.sum
Run Code Online (Sandbox Code Playgroud)
至
["A"; "B"; "D"]
|> List.sum
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
The type 'string' does not support the operator 'get_Zero'
Run Code Online (Sandbox Code Playgroud)
(这是你可以在你的浏览器中运行/修改的脚本,虽然它似乎只适用于我的IE!)
当我检查List.sum的定义时 ; 它说类型必须有一个名为Zero的静态成员.这似乎解释了错误; 除了我无法在int上看到任何名为Zero的成员!
所以; 这个适用于整数的零成员在哪里?如果我输入int.,我也无法在intellisense中看到它,也不会在docs中看到它,因为int只是一个.NET System.Int32(它似乎没有静态Zero属性).
(注意:它确实在错误中说"运算符"而不是"成员";这可能是相关的;虽然List.sum定义只是说"成员").
我正在尝试使用 FakeAsync 编写一个测试,但它似乎挂在我的awaits 上。这是一个精简的示例:
test('danny', () async {
await FakeAsync().run((FakeAsync async) async {
print('1');
final a = Future<bool>.delayed(const Duration(seconds: 5))
.then((_) => print('Delayed future completed!'))
.then((_) => true);
print('2');
async.elapse(const Duration(seconds: 30));
// Tried all this too...
// async.flushMicrotasks();
// async.flushTimers();
// async.elapse(const Duration(seconds: 30));
// async.flushMicrotasks();
// async.flushTimers();
// async.elapseBlocking(const Duration(seconds: 30));
print('3');
await a;
print('4');
expect(1, 2);
});
});
Run Code Online (Sandbox Code Playgroud)
此代码输出:
1
2
Delayed future completed!
3
// hangs and never prints '4'
Run Code Online (Sandbox Code Playgroud)
该async.elapse呼叫被允许完成未来,但它仍然挂起await …