这是第一种方法。
public void CreateCustomFieldForSubscribers()
{
var metadataManager = MetadataManager.GetManager();
var dynamicType = metadataManager.GetMetaType(typeof(Subscriber));
if (dynamicType == null)
dynamicType = metadataManager.CreateMetaType(typeof(Subscriber));
// Create a field for Title in the database
var metaField = metadataManager.CreateMetafield("Title");
metaField.DBSqlType = "NVARCHAR(100)";
metaField.DBType = "LONGVARCHAR";
metaField.ClrType = typeof(string).FullName;
dynamicType.Fields.Add(metaField);
// Create a field for Country in the database
var metaField2 = metadataManager.CreateMetafield("Country");
metaField2.DBSqlType = "NVARCHAR(100)";
metaField2.DBType = "LONGVARCHAR";
metaField2.ClrType = typeof(string).FullName;
dynamicType.Fields.Add(metaField2);
metadataManager.SaveChanges();
}
这是第二种方法
public void FillOutCustomFieldForSubscribers()
{
NewslettersManager newslettersMamager = NewslettersManager.GetManager();
// Get the mailing list you need *
MailingList mailingList = newslettersMamager.GetMailingLists().FirstOrDefault();
if (mailingList != null)
{
// Get all subscribers (or the subscriber you need **)
var subscribers = newslettersMamager.GetSubscribers().ToList();
for (int i = 0; i < subscribers.Count(); i++)
{
subscribers[i].Setvalue("Title","Mr.");
subscribers[i].Setvalue("Country","BG");
// Save the changes
newslettersMamager.SaveChanges();
}
}
}
我给他们打电话。
CreateCustomFieldForSubscribers();
FillOutCustomFieldForSubscribers();
但是当我运行第二种方法(FillOutCustomFieldForSubscribers)时:
public static void FillOutCustomFieldForSubscribers()
{
NewslettersManager newslettersMamager = NewslettersManager.GetManager();
// Get the mailing list you need *
MailingList mailingList = newslettersMamager.GetMailingLists().FirstOrDefault();
if (mailingList != null)
{
// Get all subscribers (or the subscriber you need **)
this code happen error => var subscribers = newslettersMamager.GetSubscribers().ToList();
for (int i = 0; i < subscribers.Count(); i++)
{
subscribers[i].Setvalue("Title","BG");
// Save the changes
newslettersMamager.SaveChanges();
}
}
}
错误:
无效的列名“ title”。无法准备声明。 -> System.Data.SqlClient.SqlException:无效的列名“国家”。 无效的列名“ title”。无法准备声明……
我可以通过进入数据库并插入2列国家/地区和标题来解决此问题。但我认为这不是一个好主意。请给我一些建议!谢谢