我知道这是一个测试版(刚刚检查了新版本的EF 4.3并且它做了同样的事情)发布并且某些功能可能会丢失,但我没有看到任何解释原因...
[Column(TypeName = "xml")]
public string SomeProperty { get; set; }
Run Code Online (Sandbox Code Playgroud)
...当使用EF 4.3(列创建为nvarchar(max))时,不再创建xml类型的列,我已经尝试了EF 4.2并且创建了列就好了.仅供参考我连接到sql server 2008r2并且还尝试了快递版.我使用XML来存储不断变化的数据模式的数据,并且我理解这将作为字符串传回我需要能够针对sql中的xml数据创建存储过程.我也尝试使用.HasDataType( )方法没有运气.
另外,我可以创建varchar并且我相信nchar类型,但不是ntext或text使用相同方法的类型.
所以我真正的问题是:
希望是一个简单的问题.我有一个自定义控件与依赖项属性,其中包含另一个自定义控件的列表.
public static readonly DependencyProperty BlockObjectsProperty = DependencyProperty.Register("BlockObjects", typeof(FreezableCollection<BlockObject>), typeof(Block), new FrameworkPropertyMetadata(new FreezableCollection<BlockObject>(), null));
public FreezableCollection<BlockObject> BlockObjects
{
get { return (FreezableCollection<BlockObject>)base.GetValue(BlockObjectsProperty); }
set { base.SetValue(BlockObjectsProperty, value); }
}
Run Code Online (Sandbox Code Playgroud)
然后在xaml中使用它来填充控件
<Viewbox Grid.Row="2" Stretch="Uniform">
<ItemsControl x:Name="tStack" ItemsSource="{TemplateBinding BlockObjects}" ContextMenu="{StaticResource BodyContextMenuKey}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" VerticalAlignment="Stretch" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</Viewbox>
Run Code Online (Sandbox Code Playgroud)
我现在的问题是我想将其序列化为一个文件但我得到'使用XamlWriter.Save时无法序列化泛型类型'System.Windows.FreezableCollection`'.如果这是一个普通的类,我可以使用属性来描述它应该被序列化的方式(对吗?)但它是一个静态依赖属性,那么如何让它序列化呢?