orchard模块编写的错误及其解决办法
2013-06-12 07:41
567 查看
在编写自定义模块的时候,出现了一些意想不到的的错误,在解决这些问题的时候,加深了对orchard开发的认识。
1、编写了part,编辑的时候总是不出现part的界面
检查了所有文件,最后发现在partDriver类中没有将Service添加到构造函数,
原来的写法:
更新后的写法:
migration类:
想当然的认为,FixedAssetPartRecord与AssetBuyMethodRecord是一对多的关系,所有FixedAssetPartRecord的表的列应该是AssetBuyMethodRecord_Id,
实际上应该是FixedAssetPart的属性的名称加_Id的命名,即AssetBuyMethod_Id
所以,migration.cs的建表时应该是:
就这么一个小的细节,折磨了我整整三天时间才找到原因。
1、编写了part,编辑的时候总是不出现part的界面
检查了所有文件,最后发现在partDriver类中没有将Service添加到构造函数,
原来的写法:
public class FixedAssetPartDriver : ContentPartDriver<FixedAssetPart> { private readonly INotifier _notifier; private const string TemplateName = "Parts/FixedAsset"; private readonly IFixedAssetService _service; protected override string Prefix { get { return "FixedAsset"; } } public Localizer T { get; set; } public FixedAssetPartDriver(INotifier notifier) //public FixedAssetPartDriver(INotifier notifier,IFixedAssetService service) { _notifier = notifier; // _service = service; T = NullLocalizer.Instance; }
更新后的写法:
public FixedAssetPartDriver(INotifier notifier,IFixedAssetService service) { _notifier = notifier; _service = service; T = NullLocalizer.Instance; }
IFixedAssetService 没有实例化,导致她调用的数据,不能出现,也就没有part页面出来了。 2、更新数据的时候,出现null id的错误,找了几天都没找到原因。最新看文档,发现一个细节没有注意 看原来的代码:
public class FixedAssetPart : ContentPart<FixedAssetPartRecord> { public string AssetCode { get { return Record.AssetCode; } set { Record.AssetCode = value; } } public string AssetName { get { return Record.AssetName; } set { Record.AssetName = value; } } public string Brand { get { return Record.Brand; } set { Record.Brand = value; } } public decimal AssetValue { get { return Record.AssetValue; } set { Record.AssetValue = value; } } public AssetBuyMethodRecord AssetBuyMethod { get { return Record.AssetBuyMethod; } set { Record.AssetBuyMethod = value; } }
migration类:
SchemaBuilder.CreateTable(typeof(FixedAssetPartRecord).Name, t => t.ContentPartRecord() .Column<string>("AssetCode") .Column<string>("AssetName") .Column<string>("Brand") .Column<decimal>("AssetValue") .Column<int>("AssetBuyMethodRecord_Id") );
想当然的认为,FixedAssetPartRecord与AssetBuyMethodRecord是一对多的关系,所有FixedAssetPartRecord的表的列应该是AssetBuyMethodRecord_Id,
实际上应该是FixedAssetPart的属性的名称加_Id的命名,即AssetBuyMethod_Id
所以,migration.cs的建表时应该是:
SchemaBuilder.CreateTable(typeof(FixedAssetPartRecord).Name, t => t.ContentPartRecord() .Column<string>("AssetCode") .Column<string>("AssetName") .Column<string>("Brand") .Column<decimal>("AssetValue") .Column<int>("AssetBuyMethod_Id") );
就这么一个小的细节,折磨了我整整三天时间才找到原因。
相关文章推荐
- Ubuntu下使用vim编写makefile文件出现错误 "makefile: *** missing separator. stop ."的解决办法
- SYBASE编程中的莫名错误及其解决办法
- py2exe打包包含wmi模块的脚本后,运行时出现win32api.pyd错误的解决办法。
- ELK由5.5.x升级到6.0.0的错误及其解决办法收集
- JDBC中遇到的一些错误及其解决办法
- 【总结】Python 2.x中常见字符编码和解码方面的错误及其解决办法
- vs2015中编写C语言代码出现错误:提示scanf is not safe 问题解决办法
- Linux 2.6.x 内核模块加载错误 “Invalid module format” 解决办法
- SQL Server 2008常见错误及其解决办法
- VC6.0中出现的“illegal use of this type as an expression”错误及其解决办法
- C++常见编译/链接错误及其解决办法
- 解决办法:asp.net发布到IIS中出现错误:处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”(转)
- 编写android程序时:Error in an XML file: aborting build"错误的解决办法
- Oracle协议适配器TNS相关错误集合及其解决办法
- java.io.CharConversionException: isHexDigit 出现错误的原因及其解决办法
- 分析ADSL拨号中出现的错误代码 原因及其解决办法
- Android打包出现形如“Dx bad class file magic (cafebabe) or version (0033.0000)1”的错误的原因及其解决办法
- 【总结】Python 2.x中常见字符编码和解码方面的错误及其解决办法
- 【转】 C++常见编译/链接错误及其解决办法
- 64位win7下使用C_API编写mysql程序的错误及解决办法记录