小编Elu*_*FTW的帖子

代码优先迁移:如何为新属性设置默认值?

我使用EF6 report在我的数据库中存储该类的实例.数据库已包含数据.说我想添加一个属性report,

public class report {
    // ... some previous properties

    // ... new property:
    public string newProperty{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我转到包管理器控制台并执行

add-migration Report-added-newProperty
update-database
Run Code Online (Sandbox Code Playgroud)

我将在'/ Migrations'文件夹中获取一个文件,newProperty向表中添加一列.这很好用.但是,对于数据库中较旧的条目,该值newProperty现在为空字符串.但我希望它是,例如,"老".

所以我的问题是:如何在迁移脚本(或其他地方)中为新属性(任何类型)设置默认值?

.net c# entity-framework ef-migrations entity-framework-6

37
推荐指数
3
解决办法
2万
查看次数

在剃刀中设置复选框的标签

如何设置复选框的标签?我看了一些网站,他们正在使用lambda表达式,但我无法理解它们.我是asp.net MVC的新手.

@{
   bool chkVal = false;  
 }
<li>@Html.CheckBox("chksumma",chkVal,new {@value = "5"})</li>
<li>@Html.LabelFor(, "");
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc asp.net-mvc-4

20
推荐指数
3
解决办法
5万
查看次数

可以在EF代码中设置第一个迁移种子方法的断点吗?

SeedConfigure.cs为我的实体框架6代码优先迁移过程中的方法中遇到了问题.我正在运行该Update-Database -verbose命令Package Manager Console,并尝试在Seed方法的c#代码中设置断点(在VS studio web express 2013中).但即使我把它放在方法的第一个语句中,它也没有被击中,虽然控制台显示running seed method(并且由于我的错误而导致其中断)

那么可以以某种方式在Seed方法中设置断点吗?如果没有,调试该代码的最佳方法是什么?

c# asp.net entity-framework ef-code-first ef-migrations

19
推荐指数
1
解决办法
9573
查看次数

三元运算符语法选择接口的实现

我想知道为什么这行代码不能编译:

ILogStuff Logger = (_logMode) ? new LogToDisc() : new LogToConsole();
Run Code Online (Sandbox Code Playgroud)

注意这两个类LogToDiscLogToConsole实现ILogStuff,并且_logMode是一个布尔变量.我得到的错误信息是:

错误3:无法确定条件表达式的类型,因为'xxx.LogToDisc'和'xxx.LogToConsole'之间没有隐式转换

但为什么要有一个呢?我错过了什么?

c# ternary-operator

14
推荐指数
2
解决办法
1384
查看次数

同一活动上的两个导航抽屉

是否可以在同一活动中配置两个导航抽屉,一个来自左边,另一个来自右边?

android navigation-drawer

9
推荐指数
1
解决办法
9356
查看次数

RxJS:可观察的Observable数组的数组

我在Angular4应用程序中使用Observables时遇到以下情况:我无法开始工作:我想收集所有预订日的摘要数据以获取概述页面.得到所有的日子是一个Observable,每天都有一个我必须检索的当天预订列表 - 再次是一个可观察的来源.从这个列表中我计算出当天的摘要.我希望在结果可观察中发出所有这些摘要.

我已经尝试了许多更复杂的事情,但总是内部的可观察者没有等待完成,我得到了空的摘要.我已经回到了基础,这些方面应该有用:

getSummaries(): Observable<BookingDaySummary[]> {
    return this.bookingService.getBookingDays().take(1).mergeMap(
        days => this.calculateSummaryOfDays(days)
    )
};

private calculateSummaryOfDays(days: BookingDay[]): Observable<BookingDaySummary[]> {
    const summaries$ = days.map(day => this.calculateSummary(day));
    // I'm aware that the next line is not correct. 
    // Essentially I want the array of observables to complete 
    // and have an array of the resulting values.
    return Observable.merge(summaries$);
}

private calculateSummary(day: BookingDay): Observable<BookingDaySummary> {
    // ... logic to get summary from one day
}
Run Code Online (Sandbox Code Playgroud)

但是,类型summaries$是否Observable<Observable<BookingDaySummary>而不是Observable.所以这一切归结为:我如何制作一个Observable<T[]>来自[Observable<T>] …

merge observable rxjs typescript

9
推荐指数
2
解决办法
7543
查看次数

在mvc中的@ Html.RadioButtonFor

在我的应用程序中,我的模型包含一个字段id,在视图中我需要选择带有单选按钮的id并将选定的id发回给控制器.我怎样才能做到这一点?我的观点如下,

@model IList<User>

@using (Html.BeginForm("SelectUser", "Users"))
{
    <ul>
        @for(int i=0;i<Model.Count(); ++i)
        {
            <li>
                <div>
                    @Html.RadioButtonFor(model => Model[i].id, "true", new { @id = "id" }) 
                    <label for="radio1">@Model[i].Name<span><span></span></span></label>
                </div>
            </li>
        }
    </ul>

    <input type="submit" value="OK">
}
Run Code Online (Sandbox Code Playgroud)

c# razor asp.net-mvc-4

6
推荐指数
1
解决办法
1万
查看次数

Caliburn Micro、绑定和通知

经过几个月的 WPF 实践,我决定试一试 Caliburn Micro。我有几件事无法上班。我将首先发布代码,请参阅下面的问题/问题:

public class MainViewModel : PropertyChangedBase
{
    BindableCollection<PlayerProfile> _playerProfiles = staticInfos.Load();

    public BindableCollection<PlayerProfile> PlayerProfiles {
        get { return _playerProfiles; }
        set { 
            _playerProfiles = value;
            NotifyOfPropertyChange(() => PlayerList);
        }
    }

    string _tb_AddPlayer;
    public string TB_AddPlayer {
        get { return _tb_AddPlayer; }
        set { 
            _tb_AddPlayer = value;
            NotifyOfPropertyChange(() => TB_AddPlayer);
            NotifyOfPropertyChange(() => CanAddPlayer);
        }
    }

    List<string> _pl = new List<string>(); 
    public List<string> PlayerList {
        get{
            foreach (PlayerProfile p in PlayerProfiles) {
                if (!_pl.Contains(p.Name)) _pl.Add(p.Name);
            }
            return _pl; …
Run Code Online (Sandbox Code Playgroud)

wpf binding caliburn.micro

5
推荐指数
1
解决办法
1万
查看次数

在 Linq 查询中尝试

有没有一种巧妙的方法可以忽略 Linq 中的异常?即,假设我有一个ObjectA在其构造函数中接受字符串参数的类,并且在构造函数中进行了一些验证 - 这意味着如果字符串没有正确的格式,构造函数将抛出。通过以下代码,我将从ObjectA字符串列表中获取一个 List :

var result = new List<ObjectA>();
foreach (string _s in ListOfFiles) {
    try {
        ObjectA _A = new ObjectA(_s);
        result.Add(_A);
    }
    catch{}
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:是否有一行 linq 方式,一个 la(出现伪代码......)

var result = ListOfFiles.Select(n => try {new ObjectA(n)}).ToList();
Run Code Online (Sandbox Code Playgroud)

c# linq exception

5
推荐指数
1
解决办法
1472
查看次数

在Project Extensions中使用Msbuild变量

我目前有一个web.api项目的解决方案,我希望将其部署到本地IIS中的不同虚拟目录.目前我在api的.csproj中执行以下操作:

<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)' == 'CustomerOne.Debug'">
    <CustomerName>CustomerOne</CustomerName>
    ....
</PropertyGroup>
...
Run Code Online (Sandbox Code Playgroud)

通过引用它们,可以进一步广泛地使用这些变量进行web.config转换,复制到不同的位置等$(CustomerName).

唯一不起作用的地方是虚拟目录的定义,即我想将构建配置连接到IISUrl下面,你可以硬编码:

<ProjectExtensions>
  <VisualStudio>
    <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
      <WebProjectProperties>
        ...
        <IISUrl>http://localhost/api/something</IISUrl>
        ...
      </WebProjectProperties>
    </FlavorProperties>
  </VisualStudio>
</ProjectExtensions>
Run Code Online (Sandbox Code Playgroud)

替换<IISUrl>http://localhost/api/$(CustomerName)</IISUrl>它不起作用.想法?

c# asp.net msbuild visual-studio asp.net-web-api

5
推荐指数
1
解决办法
242
查看次数