小编Ale*_*lec的帖子

如何使用Entity Framework CodeFirst使我的数据库成为种子?

数据库已成功创建(与表一样)但未加种.我花了几个小时阅读了大量文章但却未能得到它.有什么建议?

另外,是否可以在客户端中没有引用我的DatabaseContext的情况下调用初始化程序?

我已经包含了我能想到的所有相关代码.如果有任何其他方面的帮助,请告诉我.

我试过的事情:

  1. 我删除了我的连接字符串(因为它默认为sqlexpress,只是更改了名称)
  2. 我将DropCreateDatabaseIfModelChanges更改为DropCreateDatabaseAlways,仍然相同.

编辑:非常奇怪的是它曾经工作过一次,但我不知道它是如何或为什么再次破坏.我假设连接字符串,但谁知道.

DatabaseInitializer.cs

public class DatabaseInitializer : DropCreateDatabaseIfModelChanges<DatabaseContext>
{
  protected override void Seed(DatabaseContext context)
  {
    // Seeding data here
    context.SaveChanges();
  }
}
Run Code Online (Sandbox Code Playgroud)

DatabaseContext.cs

public class DatabaseContext : DbContext
{
  protected override void OnModelCreating(DbModelBuilder mb)
  {
    // Random mapping code
  }

  public DbSet<Entity1> Entities1 { get; set; }
  public DbSet<Entity2> Entities2 { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

Global.asax.cs - Application_Start()

protected void Application_Start()
{
  Database.SetInitializer<DatabaseContext>(new DatabaseInitializer());
  AreaRegistration.RegisterAllAreas();
  RegisterGlobalFilters(GlobalFilters.Filters);
  RegisterRoutes(RouteTable.Routes);
}
Run Code Online (Sandbox Code Playgroud)

客户端web.config

<connectionStrings>
  <add name="DatabaseContext" connectionString="data source=.\SQLEXPRESS;Database=Database;Integrated Security=SSPI;" …
Run Code Online (Sandbox Code Playgroud)

frameworks entity entity-framework code-first asp.net-mvc-3

62
推荐指数
3
解决办法
7万
查看次数

如何将lambda表达式传递给WCF服务?

我目前的项目是使用IDesign架构,所以我的所有层都是服务.我希望在我的资源访问层的CRUD中使用我的Read方法以lambda表达式的形式获取谓词以及要拉取的相关对象列表.这样,资源访问层将非常通用.

[OperationContract]
Result<MyObject> ReadObjects(Func<MyObject, bool> predicate, string[] includes);
Run Code Online (Sandbox Code Playgroud)

现在我已经发现了一些应该是显而易见的事情,那就是我无法序列化lambda表达式.我研究了将字符串解析为lambda表达式,但这也是不行的.

有什么方法可以用来将lambda表达式传递给服务吗?有没有更好的方法来做我想做的事情?

.net c# wcf

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

UIActionSheet分隔符具有非常意外的行为

我正在创建一个标准UIActionSheet,我不需要破坏性按钮和底部的取消按钮.我的其他按钮标题存储在一个NSArray.

但是,我对行分隔符的行为非常奇怪,特别是当我尝试添加标题时.

我在这里完全失败了.救命?

实施#1(无标题)

UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];
for (NSString *title in self.myArray) {
    [actionSheet addButtonWithTitle:title];
}
actionSheet.cancelButtonIndex = [actionSheet addButtonWithTitle:@"Cancel"];
[actionSheet showFromToolbar:(UIToolbar*)self.toolbarView];
Run Code Online (Sandbox Code Playgroud)

实施#2(带标题)

UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Title" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];
for (NSString *title in self.myArray) {
    [actionSheet addButtonWithTitle:title];
}
actionSheet.cancelButtonIndex = [actionSheet addButtonWithTitle:@"Cancel"];
[actionSheet showFromToolbar:(UIToolbar*)self.toolbarView];
Run Code Online (Sandbox Code Playgroud)

结果#1(无标题)

当我有10个或更少的按钮,不包括取消按钮时,所有按钮都适合屏幕.行分隔符扩展了操作表的整个宽度.这是预期的行为.

当我有11个或更多按钮时,操作表实现滚动.分隔符现在一直向左延伸,但在右边留出空间(~25px?).此外,当我向上和向下滚动时,每次在最后一个非取消按钮之后添加/移除额外的分隔符(扩展全宽).

  1. 打开行动表
  2. 滚动到底部 - >最后一个按钮后没有行分隔符
  3. 滚动到顶部
  4. 滚动到底部 - >在最终按钮后延伸全宽的行分隔符
  5. 滚动到顶部
  6. 滚动到底部 - >最后一个按钮后没有行分隔符
  7. ...等

结果#2(标题)

当我有10个或更少的按钮,不包括取消按钮时,所有按钮都适合屏幕.行分隔符扩展了操作表的整个宽度.还有一个分隔符,在顶部标题和第一个按钮之间延伸全宽.这是预期的行为.

当我有11个或更多按钮时,操作表实现滚动.分隔符现在一直向左延伸,但在右边留出空间(~25px?).标题和按钮之间的分隔符在分隔符的两侧留出空间(~5px).现在当我向上和向下滚动时,我得到了非常奇怪的分隔符行为,分隔符在奇怪的地方被添加和删除.

  1. 打开行动表
  2. 滚动到底部 …

uiactionsheet ios ios7

5
推荐指数
0
解决办法
878
查看次数

使用 CsvHelper 库,如何将空字段读取为 null 而不是空字符串?

我正在使用Josh Close 的CsvHelper库。

我想配置 CsvReader 将空字段转换为 null 而不是空字符串,目的是将这些值存储在数据库中。

值得注意的是,我没有映射到类,而是手动读取字段。

尝试:

  1. 我尝试将 CsvConfiguration.UseNewObjectForNullReferenceMembers 设置为 false(默认为 true),认为这可能意味着它在找到空字段时不会创建“新字符串对象”。
  2. 我尝试添加一个扩展 TypeConversion.StringConverter 并覆盖 ConvertFromString 方法的自定义类型转换器。
  3. 我尝试向 CsvConfiguration.TypeConverterOptions.getOptions.NullValues 添加空字符串。
CsvConfiguration csvConfiguration = new CsvConfiguration(CultureInfo.InvariantCulture);

//csvConfiguration.UseNewObjectForNullReferenceMembers = false;
//csvConfiguration.TypeConverterOptionsCache.GetOptions<string>().NullValues.Add("");
//csvConfiguration.TypeConverterCache.AddConverter<string>(new NullStringConverter());

using (StreamReader streamReader = new StreamReader(fileStream))
using (CsvReader csv = new CsvReader(streamReader, csvConfiguration))
{
    string value = csv.GetField(index); // <-- I want this to be null not ""
}
Run Code Online (Sandbox Code Playgroud)
public class NullStringConverter : StringConverter
{
    public override object ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData) …
Run Code Online (Sandbox Code Playgroud)

.net c# type-conversion csvhelper

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

虚拟代理如何工作?

我在围绕虚拟代理问题时遇到了一些麻烦.我已经阅读了大量的文章,并花了几个小时试图找到好的信息,但我还没有找到一些全面的东西.因此,我将在此处提出一般性请求以获取更好的信息(在此处发布或仅发布链接).我还将在下面添加一些细节,以便更好地解释我想要的是什么.

我有几个对象,它们之间有很多引用.为了简洁起见,我将有一个具有基本父子关系的对象(Node).当我从数据库中提取此对象时,我想实现延迟加载.根据我的阅读,虚拟代理将基本上通过引用接口(INode)并根据需要提取数据成员来处理所有延迟加载.[注意:我实际上没有INode类,但是当我将virtual关键字放在我的数据成员上时,似乎确实使用了代理]

当我在我的类虚拟中创建数据成员时,它似乎成为代理.这是虚拟代理吗?这些是否实现了延迟加载?

我搜索了关于virtual关键字的信息,但是我能找到的唯一文档是在方法上使用它,用于继承,以便派生类可以覆盖函数,这与我想要的东西无关(我认为) .

这是我目前的Node.cs

[DataContract(IsReference=true)]
public partial class Node
{
  [DataMember]
  public long ID { get; private set; }
  [DataMember]
  public virtual Node Parent { get; set; }
  [DataMember]
  public virtual ICollection<Node> Children { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

基本上在这一点上我非常困惑,只需要一些关于这个主题的指导,甚至是我可以看到的在线资源,因为我发现的所有内容都没那么有用.

提前致谢.

c# wcf proxy virtual

4
推荐指数
1
解决办法
1180
查看次数

WCF:序列化为数组的通用列表

所以我正在使用WCF和我的服务返回包含通用列表的类型.WCF目前正通过网络将这些转换为阵列.有没有办法配置WCF以后再将它们转换回列表?我知道在添加服务引用时单击高级有一种方法,但我正在寻找配置文件或类似的解决方案.

[DataContract(IsReference = true)]
public class SampleObject
{
  [DataMember]
  public long ID { get; private set; }

  [DataMember]
  public ICollection<AnotherObject> Objects { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这也很奇怪,因为一个服务将其作为列表返回,另一个作为数组返回,我很确定它们的配置相同.

c# arrays wcf serialization list

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

UIView默认样式有圆角吗?

我用a UIPopoverController来显示一个UIView.布局有点类似于a UISplitViewController所以看起来在"细节视图"上有圆角是非常奇怪的,因为它留下了一个小间隙.我还没有找到任何与其他有这个问题的人相关的东西,但这些圆角似乎是默认的样式.是否可以删除它们?

可能有用的事情:

  • 我从一个nib文件加载我的视图,但我目前没有更改默认值 UIView
  • 我尝试设置clipsToBound = NOviewDidLoad
  • 我尝试设置layer.cornerRadius = 0viewDidLoad

在视图的顶部似乎也有一个阴影,但很难说.有什么方法可以摆脱所有这些默认样式?我只想要一个空白的方块.

interface-builder uiview nib ios

2
推荐指数
1
解决办法
5065
查看次数

通用列表方法Clear()是否使用RemoveAt()方法?

我正在写一个门面IList<T>来实现变更跟踪.是否Clear使用RemoveAtRemove或别的东西完全?我需要知道是否需要设置内部的所有项目跟踪状态,Clear或者仅在更改跟踪状态时Remove,并且RemoveAt就足够了.

同样,确实Add使用Insert?难道RemoveRemoveAt利用对方?

对此类实现的任何其他输入也是受欢迎的.

编辑:List的扩展方法是使用预先存在的方法还是新代码?我不知道是否需要实施这些.

.net c# generics

0
推荐指数
1
解决办法
281
查看次数