我是做双手上就通过OData服务从Silverlight访问MS CRM数据。
由于我练的CRUD(创建,读取,更新和删除)操作在同一一部分。
我没有遇到任何问题,阅读的创建,读取和删除操作。
唯一的问题,我面对的是读操作。
让我描述我的问题。
数据获取正确的客户关系管理(CRM)和查询执行后生成的URI,正常工作时,在IE独立执行。
当我给ListBox控件获取数据,它显示了"SilverlightApplication43.CRMOdata.Contact??,我想表明从接触的一些具体领域如名字,但不知何故,我无法做到这一点。
我欣赏你的人如果能帮助我。
我的代码放在这里
namespace SilverlightApplication43
{
public partial class MainPage : UserControl
{
public DataServiceCollection<Contact> _contacts;
System.Windows.Data.Binding list;
(myorgname)Context context;
public MainPage()
{
InitializeComponent();
MainPage_Loaded(this,new RoutedEventArgs() );
}
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
var serviceUri = "http://crmdev:5555/(Myorgname)/XRMServices/2011/OrganizationData.svc/";
(Myorgname)Context ctx = new (Myorgname)Context(new Uri(serviceUri));
//to avoid cross domain issues
ctx.HttpStack = System.Data.Services.Client.HttpStack.ClientHttp;
ctx.UseDefaultCredentials = false;
ctx.Credentials = new NetworkCredential("administrator", "somepassword", "somedomain");
context = ODataServiceFactory.GetInstance<(Myorgname)Context>();
var query = from c in context.ContactSet
select c;
_contacts = null;
_contacts = new DataServiceCollection<Contact>();
_contacts.LoadCompleted += new EventHandler<LoadCompletedEventArgs>(_contacts_LoadCompleted);
_contacts.LoadAsync(query);
}
void _contacts_LoadCompleted(object sender, LoadCompletedEventArgs e)
{
var binding = (DataServiceCollection<Contact>)sender;
listBox1.ItemsSource = _contacts;
//I am doubtful about both statements
listBox1.ItemsSource = _contacts.ToList<Contact>();
}
}
}