数据库已成功创建(与表一样)但未加种.我花了几个小时阅读了大量文章但却未能得到它.有什么建议?
另外,是否可以在客户端中没有引用我的DatabaseContext的情况下调用初始化程序?
我已经包含了我能想到的所有相关代码.如果有任何其他方面的帮助,请告诉我.
我试过的事情:
编辑:非常奇怪的是它曾经工作过一次,但我不知道它是如何或为什么再次破坏.我假设连接字符串,但谁知道.
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) 我目前的项目是使用IDesign架构,所以我的所有层都是服务.我希望在我的资源访问层的CRUD中使用我的Read方法以lambda表达式的形式获取谓词以及要拉取的相关对象列表.这样,资源访问层将非常通用.
[OperationContract]
Result<MyObject> ReadObjects(Func<MyObject, bool> predicate, string[] includes);
Run Code Online (Sandbox Code Playgroud)
现在我已经发现了一些应该是显而易见的事情,那就是我无法序列化lambda表达式.我研究了将字符串解析为lambda表达式,但这也是不行的.
有什么方法可以用来将lambda表达式传递给服务吗?有没有更好的方法来做我想做的事情?
我正在创建一个标准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?).此外,当我向上和向下滚动时,每次在最后一个非取消按钮之后添加/移除额外的分隔符(扩展全宽).
结果#2(标题)
当我有10个或更少的按钮,不包括取消按钮时,所有按钮都适合屏幕.行分隔符扩展了操作表的整个宽度.还有一个分隔符,在顶部标题和第一个按钮之间延伸全宽.这是预期的行为.
当我有11个或更多按钮时,操作表实现滚动.分隔符现在一直向左延伸,但在右边留出空间(~25px?).标题和按钮之间的分隔符在分隔符的两侧留出空间(~5px).现在当我向上和向下滚动时,我得到了非常奇怪的分隔符行为,分隔符在奇怪的地方被添加和删除.
我正在使用Josh Close 的CsvHelper库。
我想配置 CsvReader 将空字段转换为 null 而不是空字符串,目的是将这些值存储在数据库中。
值得注意的是,我没有映射到类,而是手动读取字段。
尝试:
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) 我在围绕虚拟代理问题时遇到了一些麻烦.我已经阅读了大量的文章,并花了几个小时试图找到好的信息,但我还没有找到一些全面的东西.因此,我将在此处提出一般性请求以获取更好的信息(在此处发布或仅发布链接).我还将在下面添加一些细节,以便更好地解释我想要的是什么.
我有几个对象,它们之间有很多引用.为了简洁起见,我将有一个具有基本父子关系的对象(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)
基本上在这一点上我非常困惑,只需要一些关于这个主题的指导,甚至是我可以看到的在线资源,因为我发现的所有内容都没那么有用.
提前致谢.
所以我正在使用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)
这也很奇怪,因为一个服务将其作为列表返回,另一个作为数组返回,我很确定它们的配置相同.
我用a UIPopoverController
来显示一个UIView
.布局有点类似于a UISplitViewController
所以看起来在"细节视图"上有圆角是非常奇怪的,因为它留下了一个小间隙.我还没有找到任何与其他有这个问题的人相关的东西,但这些圆角似乎是默认的样式.是否可以删除它们?
可能有用的事情:
UIView
clipsToBound = NO
在viewDidLoad
layer.cornerRadius = 0
在viewDidLoad
在视图的顶部似乎也有一个阴影,但很难说.有什么方法可以摆脱所有这些默认样式?我只想要一个空白的方块.
我正在写一个门面IList<T>
来实现变更跟踪.是否Clear
使用RemoveAt
或Remove
或别的东西完全?我需要知道是否需要设置内部的所有项目跟踪状态,Clear
或者仅在更改跟踪状态时Remove
,并且RemoveAt
就足够了.
同样,确实Add
使用Insert
?难道Remove
或RemoveAt
利用对方?
对此类实现的任何其他输入也是受欢迎的.
编辑:List的扩展方法是使用预先存在的方法还是新代码?我不知道是否需要实施这些.